u, v, w = ([] for i inrange(3)) # 多变量赋值 for i inrange(4): # 这里假设输入 4 行数据 _u, _v, _w = [int(x) for x ininput().split()] u.append(_u), v.append(_v), w.append(_w)
不定行数读入法
1 2 3 4 5
s = input() # 注意 Python 中赋值语句不能放在条件表达式中 while s: # 不能像 C 那样 while(!scanf()) # 用切片拼接避免了 append(),注意列表推导式中又嵌套了列表 u[len(u):], v[len(v):], w[len(w):] = [[int(x)] for x in s.split()] s = input()
字典与集合
字典(哈希表实现,类似 unordered_map)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
dic = {'a': 1, 'b': '1'} del dic['a'] dic.clear()
dic = {chr(i): i for i inrange(65, 91)} # 可哈希的对象都可作为字典的键 dic = dict(zip([chr(i) for i inrange(65, 91)], range(65, 91))) # 效果同 dic = {dic[k]: k for k in dic} # 将键值对逆转,for k in dic 迭代其键 dic = {v: k for k, v in dic.items()} # 和上行作用相同,dic.items() 以元组存放单个键值对
dic.update(dic) dic['a'] = 97 del dic['a']
for (a, b) in dic.items(): print(a, b)
dict.update(dic, {1: 1, 2: 2}) # 不保留结果
集合(set)
1 2 3 4 5
x = {1} x = set() x.update(x) x.add(2) x.discard(2) # 注意!!!!!!!!!
自定义可哈希对象
1 2 3 4 5 6 7 8 9 10
classPerson: def__init__(self, name, age): self.name = name self.age = age