1.combinations(iterable,r)方法可以创建一个迭代器,返回iterable中所有长度为r的子序列(好像长度为1时,仍为元组形式)
import itertools
list1=[1,2,3,4]
list2=list(itertools.combinations(list1,2))
print(list2)
print('\n')
list3=[]
for c in itertools.combinations(list1,2):
list3.append(c)
print(list3)
print(list3)
print('\n')
list4=[]
for i in range(1,len(list1)+1):
c=list(itertools.combinations(list1,i))
print(c)
list4.append(c)
print(list4)
[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]
[(1, 2)]
[(1, 2), (1, 3)]
[(1, 2), (1, 3), (1, 4)]
[(1, 2), (1, 3), (1, 4), (2, 3)]
[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4)]
[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]
[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]
[(1,), (2,), (3,), (4,)]
[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]
[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
[(1, 2, 3, 4)]
[[(1,), (2,), (3,), (4,)], [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)], [(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)], [(1, 2, 3, 4)]]
>>>
2.map
x='hello,python'
print(x.split(','))
print(map(eval,x.split(',')))
print(list(map(eval,x.split(','))))
['hello', 'python']
<map object at 0x000002069F494188>
Traceback (most recent call last):
File "C:/Users/idea/Desktop/4.21.py", line 4, in <module>
print(list(map(eval,x.split(','))))
File "<string>", line 1, in <module>
NameError: name 'hello' is not defined
若改成数字组成的字符串就可以,因为字符串如果去掉括号就不知道是什么变量了,故hello无法再作为一个变量了
而’1’->1,1还是一个变量,是一个整数
x='1,2,3'
print(x.split(','))
print(map(eval,x.split(',')))
print(list(map(eval,x.split(','))))
['1', '2', '3']
<map object at 0x0000022025694288>
[1, 2, 3]