Concise Operation

Table of Contents

- 参考

- 快速输入

    - 输入字符串

    - 输入整数

    - Attention

        - OJ Python的答题结果:"返回非零"

        - Python中没有i++或者i--

- 数据类型

    - bool

- 基本数据结构

    - 列表list

        - 预分配与初始化

    - 字典dict

    -

    -

    - 字符串str

  

参考

   

快速输入

输入字符串

input()函数接受整行字符串,并返回所得字符串。

str.split():字符串分割函数

通过指定分隔符对字符串进行切片,并返回分割后的字符串列表。

   

语法:

str.split(s, num)[n]

参数说明:

s

表示指定的分隔符,不写的话,默认是空格(' ')。如果字符串中没有给定的分隔符时,则把整个字符串作为列表的一个元素返回。

num

表示分割次数。如果指定了参数num,就会将字符串分割成num+1个子字符串,并且每一个子字符串可以赋给新的变量。

[n]

表示选取第n个分片,n表示返回的list中的元素下标,从0开始的。

   

输入整行字符串

s = input('prompt')

以空格分割字符串

# 分割输入的字符串以得到子串列表

# 默认以空格为分隔符,且分割所有以空格隔开的子串

str_list = input().split()

name = str_list[0]

field = str_list[1]

以"/"分割字符串

# 指定以"/"为分隔符,且分割所有以"/"隔开的子串

str_list = input().split('/')

name = str_list[0]

field = str_list[1]

   

   

输入整数

map() 函数:根据提供的函数对指定序列做映射。

   

map(function, iterable, ...)

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

function

函数

iterable

一个或多个序列

返回值

Python 2.x

返回列表

Python 3.x

返回迭代器。

可用list()方法转换为列表:

list1 = list(map(function, iterable))

 

demo:

# 计算平方数

def square(x) :            

     return x ** 2

   

   

# 计算列表各个元素的平方

map(square, [1,2,3,4,5])  

# 值:[1, 4, 9, 16, 25]

   

# 使用 lambda 匿名函数

map(lambda x: x ** 2, [1, 2, 3, 4, 5])  

# 值:[1, 4, 9, 16, 25]

   

# 提供了两个列表,对相同位置的列表数据进行相加

map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])

# 值:[3, 7, 11, 15, 19]

   

输入一个整数

用int()函数将input()所得字符串转换为整数

a = int(input())

在一行中输入多个以空格分开的整数到指定变量

先用split()函数将input()所得字符串按空格分割,得到子串列表。

然后用int()函数将子串转换为整数。

最后用map()函数返回相应的迭代器以赋值。

n, p = map(int, input().split())

在一行中输入多个以","分开的整数到指定变量

n, p = eval(input())

将一行中的整数输入到列表中

用list()函数将map()所得的迭代器转换为列表

ar = list(map(int, input().split()))

   

   

Attention

OJ Python的答题结果:"返回非零"

  1. 在python2中用了input(),或在python3中用了raw_input()。

    如果是python2提交,就要用raw_input();

    如果是python3提交,就要用input()。

  2. 列表index out of range有时候也会返回这个错误。

   

Python中没有i++或者i--

Python规定,数值对象是不可改变的。 因此,Python中没有自增和自减。

i = i + 1 相当于重新创建了一个变量 i ,而不是改变了 i 中的数值。

可如下代替自增自减

i = i + 1

或者

i += 1

   

   

   

数据类型

bool

True

False

PS:Python中的布尔值首字母大写

   

bool() 函数:将参数转换为布尔类型。如果没有参数,则返回 False

bool int 的子类。

   

class bool([x])

# x -- 要进行转换的参数。

# 返回 True False

   

   

   

基本数据结构

列表list

预分配与初始化

预分配长度为n的空列表

# *号可重复列表

info = [None] * n

用初值初始化列表

# 可用range()函数生成序列初值

# range()函数返回的是可迭代对象,需要转化成list

list1 = list(range(n))

用列表推导式剔除不需要的数据,以初始化列表

# 生成10以内的偶数

list2 = [i for i in range(11) if i % 2 == 0]

# 值:[0, 2, 4, 6, 8, 10]

   

   

字典dict

   

合并字典

 

dict.update(dict2)

把字典dict2的键值对更新到dict中。

dicts={**dict_digits, **dict_alphabet}

用"**"传入字典dict,再用"{}"合并字典。

以序列为键初始化字典

dict.fromkeys(seq[, val])

返回一个新字典,以序列 seq 中的元素作为字典的键,val 为字典所有键值对应的初始值

询问key是否存在

dict.has_key(key)

如果键在字典dict里返回true,否则返回false。

询问key是否存在,不存在则添加key-value

dict.setdefault(key, default=None)

和get()类似,如果key在字典里返回true;如果key不在字典中,将会添加键并将值设为default。

询问key对应的value

dict.get(key, default=None)

返回指定键的值,如果值不在字典中返回default值。

   

demo:

  • 将0~9、26个小写字母和"_"添加到字典中

# dict.update()方法更新字典

import string

   

dicts = dict.fromkeys(string.digits, False)

dicts.update(dict.fromkeys(string.ascii_lowercase, False))

dicts['_'] = False

   

或者

# {**, **}的形式合并字典

import string

   

dict_digits = dict.fromkeys(string.digits, False)

dict_alphabet = dict.fromkeys(string.ascii_lowercase, False)

dicts={**dict_digits, **dict_alphabet}

dicts['_'] = False

   

   

字符串str

字符串str与列表list均可用"+"追加新内容。

   

   

   

语法

while循环

while 循环可使用 else 语句

while … else 在条件语句为 false 时执行 else 的语句块。

while <expr>:

    <statement(s)>

else:

    <additional_statement(s)>

   

   

   

   

   

猜你喜欢

转载自www.cnblogs.com/audacious/p/12292094.html
今日推荐