列表、元组、字符串相互转换
- list():将序列转换为列表;
- tuple():将序列转换为元组;
- str():将序列转换为字符串。
list_a=[1,2,3,4,5]
tuple_b=(1,2,3,4,5)
str_c='12345'
print(tuple(list_a),str(list_a))
print(list(tuple_b),str(tuple_b))
print(tuple(str_c),list(str_c))
'''
(1, 2, 3, 4, 5) [1, 2, 3, 4, 5]
[1, 2, 3, 4, 5] (1, 2, 3, 4, 5)
('1', '2', '3', '4', '5') ['1', '2', '3', '4', '5']
'''
实际上,将列表、元组变为字符串的str函数很蠢,只是在最外侧添加了引号,即生成的字符串分别是'[1,2,3,4,5]'、'(1,2,3,4,5)',并不是想象中的'12345'。
迭代器
迭代器属于可迭代对象,可通过iter函数获得。此外,部分列表、字符串、元组处理方法返回内容是迭代器,需要注意其中区别。
x=[1,2,3,4,5]
y=iter(x)
print(type(x),type(y))
#<class 'list'> <class 'list_iterator'>
next函数可以取出迭代器第一个元素,当迭代器为空时,调用next函数会报错,或者输出指定内容。
x=[1,2,3,4,5]
y=iter(x)
for i in range(7):
print(next(y,'取完了'),end=' ')
#1 2 3 4 5 取完了 取完了
#迭代器y中只有5个元素,每次next函数取出一个元素。
#在第6、7轮循环中为空,此时调用next函数,
#如果不使用'取完了'参数,会输出报错信息。
迭代器为一次性内容,即,迭代器只能用于一次迭代,使用后清除。
mapped=map(lambda x:x**2,[1,2,3,4,5])
for i in mapped:
print(i)#依次输出1 4 9 16 25
print(list(mapped))
#输出内容为[],空列表,代表mapped为空