- list
- list里面的元素的数据类型可以不同
- list元素也可以是另一个list
s = ['python', 'java', ['asp', 'php'], 'scheme']
print(len(s))
- 列表生成式:初始化
l=[x * x for x in range(1, 11)]
print(l)
l=[x * x for x in range(1, 11) if x % 2 == 0]
print(l)
l=[m + n for m in 'ABC' for n in 'XYZ']
print(l)
L = ['Hello', 'World', 'IBM', 'Apple']
l=[s.lower() for s in L]
print(l)
- 增删
l = [365, 'everyday', 0.618, True]
l.append(1024)#push_back
print (l[4])
l = [365, 'everyday', 0.618, True]
l.insert(1, 'Jack')#插到1的位置上
print (l)
l = [365, 'everyday', 0.618, True]
l.pop(3)
print (l)
l = [365, 'everyday', 0.618, True]
del l[1]
print (l[1])
tuple(元组):一旦初始化就不能修改(tuple的每个元素,指向永远不变。)
#避免歧义
t = (1,)
t = ('a', 'b', ['A', 'B'])
t[2][0] = 'X'
t[2][1] = 'Y'
print(t)
- 迭代
判断一个对象是可迭代对象
from collections import Iterable
print(isinstance('abc', Iterable))
#从1开始,到10为止(不包括11)
for i in range(1, 11):
print (i,' ', end="")
score = {
'萧峰': 95,
'段誉': 97,
'虚竹': 89
}
for key in score:
print(key)
for value in score.values():
print(value)
for k, v in score.items():
print(k,v)
word = 'helloworld'
for c in word:
print c
- 下标
l = [365, 'everyday', 0.618, True]
print (l[1])
print (l[-4])
l = [365, 'everyday', 0.618, True]
l[0] = 123
print (l[0])
word = 'helloworld'
print (word[0])
print (word[-2])
#不能通过索引访问去更改其中的字符。
word[1] = 'a'
- 切片:适用于list,tuple,string
- 在[]内提供一对可选数字,用:分割。开始位置包含在切片中,而结束位置不包括。
- 如果不指定第一个数,切片就从列表第一个元素开始。
- 如果不指定第二个数,就一直到最后一个元素结束。
- 都不指定,则返回整个列表的一个拷贝。
l = [365, 'everyday', 0.618, True]
print (l[1:3])
print (l[1:-1])
word = 'helloworld'
print (word[5:7])
print (word[:-5])
print (word[:])
I/O
f = open('fly.txt')#只读
data = f.read()
print (data)
f.close()
f = open('fly.txt','w')#只写
data = 'I will be in a file.\nSo cool!'#覆写
f.write(data)
f.close()
应用举例
f =open('fly.txt')
lines = f.readlines()#返回list
#print (lines)
f.close()
results = []
for line in lines:
data = line.split()
#print data
sum = 0
for score in data[1:]:
sum += int(score)
result = '%s \t: %d\n' % (data[0], sum)
#print (result)
results.append(result)
#print results
output = open('fly.txt', 'w')
output.writelines(results)
output.close()
- dict(字典):阉割版的unordered_map
- 键/值对用冒号分割,
- 每个对之间用逗号分割,
- 整个字典包括在花括号中。
- 键必须是唯一的;
- 键只能是简单对象,比如字符串、整数、浮点数、bool值。
score = {
'萧峰': 95,
'段誉': 97,
'虚竹': 89
}
#先判断是否存在(还有1种方法为get('虚竹',-1)即可返回指定的值)
if(score.get('虚竹')):
d.pop('虚竹')
for name in score:
print (score[name])
- set:类似于C++的set
s = set([1, 2, 3])
s.add(4)
print(s)
s.remove(4)
print(s)
进行交并运算
s1 = set([1, 2, 3])
s2 = set([2, 3, 4])
print(s1 & s2)
print(s1 | s2)