五、序列集合操作
reversed():将一个序列翻转,返回一个反向的迭代器
reversed接受一个序列参数,返回的是一个逆迭代对象,所以需要在使用序列再转换回去
list1 = [1, 2, 3, 4, 5]
print(list(reversed(list1)))
输出[5, 4, 3, 2, 1]
slice():列表的切片
slice主要做序列切片,可以从其中切取部分重新组成新的序列
list1 = [1, 2, 3, 4, 5]
s = slice(1, 3)
print(list1[s])
推荐使用简写方式:lst[start:stop]
list1 = [1, 2, 3, 4, 5]
print(list1[1:3])
bytes():把字符串转化为bytes类型
b = bytes('xxx', encoding='utf-8')
print(b) # b'xxx'
ord():输入字符找到对应编码的位置
print(ord('x')) # 97
print(ord('x')) # 31243
chr():输入位置数字找出对应的字符
输出33~1000数字对应的字符
for i in range(33, 1000):
print(chr(i), end=' ')
ascii():将Unicode字符串转换为ASCII字符串
print(ascii('Hello,xxx\n'))
'Hello,@\xxx\n'
repr():返回一个对象的字符串形式
repr原样输出,会过滤掉转义字符
s = 'Hello,\txxx\n'
print(s)
Hello, xxx
print(repr(s)) # 'Hello,\txxx\n'
len():返回一个对象中元素的个数
获取个数
list1 = [1, 2, 3, 4, 5]
print(len(list1))
sorted():对可迭代对象进行排序操作
对迭代对象进行排序,可以选择正序,逆序
list1 = [1, 5, 8, 3, 4, 2]
print(sorted(list1))
print(sorted(list1, reverse=True))
自定义规则
list2 = ['one', 'two', 'three', 'four', 'five', 'six']
def func(s):
return len(s)
print(sorted(list2, key=func))
enumerate():获取集合的枚举对象
score_dict = {
'张三': 33,
'李四': 36,
'王五': 74,
'赵六': 56,
'李白': 88,
'王维': 98,
'杜甫': 100,
'王昌龄': 89,
'王之涣': 97,
'王羲之': 93
}
score_dict_sorted = sorted(score_dict.items(), key=lambda x:x[1], reverse=True)
for index, (name, score) in enumerate(score_dict_sorted, start=1):
print(f'第{index}名:{name}\t成绩:{score}')
第1名:杜甫 成绩:100
第2名:王维 成绩:98
第3名:王之涣 成绩:97
第4名:王羲之 成绩:93
第5名:王昌龄 成绩:89
第6名:李白 成绩:88
第7名:王五 成绩:74
第8名:赵六 成绩:56
第9名:李四 成绩:36
第10名:张三 成绩:33
all():可迭代对象中所有元素都为True,返回结果才为True
any():可迭代对象中只要有一个是True,返回结果就是True
zip():在多个迭代器上并行迭代,从每个迭代器返回一个数据项组成元组,如果各个迭代器的元素个数不同,则返回列表长度与最短的对象相同
zip可以将多个迭代器转换成元组
list1 = [1, 2, 3]
list2 = ['苹果', '香蕉', '梨']
list3 = [10, 20, 15]
for data in zip(list1, list2, list3):
print(data)
(1, '苹果', 10)
(2, '香蕉', 20)
(3, '梨', 15)
filter():过滤器可以接收一个自定义筛选函数,将迭代器中的元素传到函数中进行判断,用来确定是否保留这个元素。
过滤出数据中的偶数
def func(i):
return i % 2 == 0
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
lst = filter(func, list1)
print(list(lst))
[2, 4, 6, 8]
map():可以对可迭代对象中的元素进行映射,分别去执行自定义函数
给数据中每个元素加1
def func(i):
return i + 1
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
lst = map(func, list1)
print(list(lst))
[2, 3, 4, 5, 6, 7, 8, 9, 10]