Python 内置序列函数

xiaoxiao2021-02-28  71

enumerate函数

# 逐个返回序列的(i,value)值 some_list = ['foo', 'bar', 'baz'] for i, value in enumerate(some_list): print(i, value) #还可以映射成字典的位置 mapping = dict((v, i) for i, v in enumerate(some_list)) print(mapping)

结果

0 foo1 bar2 baz{'foo': 0, 'bar': 1, 'baz': 2}

sorted函数

可以将任何序列返回为一个新的有序列表

zip函数

可以将多个序列(列表、元组等)中的元素‘配对’

seq1 = [4, 5, 6] seq2 = [1, 2, 3] seq3 = zip(seq1, seq2) seq3 = list(seq3) print(seq3)

这里是Python3的写法,如果是python 2 的写法,结果就会是这样<zip object at 0x000001A06E882188>

Reversed函数

a = list(reversed(range(10))) print(a)字典 empty_dict = {} d1 = {'a': 'somevalue', 'b': [1, 2, 3, 4]} print(d1) #插入一个字典元素 d1[7] = 'an integer' print(d1) #判断字典中是否存在某个键 print('b' in d1) #del删除键值对应的value,pop删除指定值后会返回一个值 d1[5] = 'some value' d1['dummy'] = 'another value' print(d1) del d1[5] print(d1) ret = d1.pop('dummy') print(ret) #keys()和values()可以用来获取键和值的列表,但是python 得到的是迭代器 print(d1.keys()) print(d1.values()) #update d1.update({'b': 'foo', 'c': '12'}) print(d1)

set集和

两种创建方式

a = set([1, 2, 3, 3, 2]) b = {1, 2, 3, 4, 3} print(a) print(b) a = {1, 2, 3, 4, 5} b = {3, 4, 5, 6, 7, 8} huo = a | b yu = a & b cha = a - b yihuo = a ^ b print(huo) print(yu) print(cha) print(yihuo)

结果

{1, 2, 3, 4, 5, 6, 7, 8}{3, 4, 5}{1, 2}{1, 2, 6, 7, 8}

列表推导式

[expr for val in collection if condition]

相当于下面这段for循环

result = [] for val in collection: if condition: result.append(expr)

举例如下

strings = ['a', 'as', 'bat', 'car', 'dove'] str1 = [x.upper() for x in strings if len(x) >2] print(str1)

嵌套列表推导式

求出带有两个‘e’的名字

all_data = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'joe'], ['Susie', 'Casey', 'Jill', 'Ana', 'Eva', 'Jennifer', 'Stephanie']] names_of_interest = [] for names in all_data: enough_es = [name for name in names if name.count('e') == 2] names_of_interest.extend(enough_es) print(names_of_interest)

结果:

['Jefferson', 'Wesley', 'Steven', 'Jennifer', 'Stephanie']

改成如下的嵌套列表推导式

result = [name for names in all_data for name in names if name.count('e') == 2] print(result)
转载请注明原文地址: https://www.6miu.com/read-2624193.html

最新回复(0)