enumerate
python内置的enumerate函数可以把一个 list 变成索引-数据对,这样就可以在 for 循环中同时迭代索引和元素本身
for i, value in enumerate(['A', 'B', 'C']):
print(i, value)
输出:
1 1
2 4
3 9
(同时引用了两个变量)
xrange和range
range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个列表
range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range(2,10)
[2, 3, 4, 5, 6, 7, 8, 9]
range(2,10,2)
[2, 4, 6, 8]
type(_)
<type ‘list’>
xrange和range的用法完全相同,但返回的是一个生成器
xrange(10)
xrange(10)
xrange(2,10)
xrange(2, 10)
xrange(2,10,2)
xrange(2, 10, 2)
type(_)
<type ‘xrange’>
list(xrange(2, 10, 2))
[2, 4, 6, 8]
但要生成很大的数字序列时,用xrange比range的性能优很多,因为不需要一上来就开辟一块很大的内存空间,这两个基本都是在循环的时候用
pop
list.pop()用于移除列表中的一个元素,默认最后一个元素,并返回该元素的值
int(a, 2)
第一个参数表示正常传入的,第二个参数表示输入的进制数
d = int(a, 2) #二进制转十进制
e = int(b, 8) # 八进制转十进制
f = int(c, 16) # 十六进制转十进制
format
- 使用位置参数
- 使用关键字参数
- 填充与格式化
'{0:*>10}'.format(10) ##右对齐
'{0:*<10}'.format(10) ##左对齐
'{0:*^10}'.format(10) ##居中对齐
- 精度与进制
'{0:.2f}'.format(1/3) #输出0.33
'{0:o}'.format(10) #八进制 输出12
'{0:x}'.format(10) #16进制 输出a
- 使用索引
list tuple set dictionary
- list
list是写在方括号 [] 之间、用逗号分隔开的元素列表。
列表比较需要用到operator的eq方法
- tuple
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
列表是有序的对象集合,字典是无序的对象集合。
- set
set可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。基本功能是进行成员关系测试和删除重复元素。
sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'}
print(sites) # 输出集合,重复的元素被自动去掉
# 成员测试
if 'Runoob' in sites :
print('Runoob 在集合中')
else :
print('Runoob 不在集合中')
无序的,不重复的
a = set('abracadabra')
b = set('alacazam')
>>> a
{'a', 'r', 'b', 'c', 'd'}
>>> a - b # 集合a中包含而集合b中不包含的元素
{'r', 'd', 'b'}
- dictionary
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
运算符
x = True
y = False
z = False
if x or y and z:
print("yes")
else:
print("no")
输出 no
and 拥有更高优先级,会先行运算。
迭代器
iter()
next()