您的位置:首页 > 编程语言 > Python开发

Python 内置序列函数

2018-05-03 12:53 176 查看

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 foo
1 bar
2 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)

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: