将单个值与Python中的所有列表项相关联

我们可能需要将给定值与列表的每个元素相关联。例如-有日期的名称,我们要在其后附加单词day作为后缀。可以通过以下方式处理这种情况。

使用itertools.repeat

我们可以使用itertools模块中的repeat方法,以便在使用zip函数将给定列表中的值配对时一次又一次使用相同的值。

示例

from itertools import repeat

listA = ['Sun','Mon','Tues']
val = 'day'
print ("The Given list : ",listA)
print ("Value to be attached : ",val)
# With zip() and itertools.repeat()
res = list(zip(listA, repeat(val)))
print ("List with associated vlaues:\n" ,res)

输出结果

运行上面的代码给我们以下结果-

The Given list : ['Sun', 'Mon', 'Tues']
Value to be attached : day
List with associated vlaues:
[('Sun', 'day'), ('Mon', 'day'), ('Tues', 'day')]

有lambda和映射

lambda方法在列表元素上进行迭代,然后开始将它们配对。映射功能确保将列表元素与给定值配对时涵盖了列表中的所有元素。

示例

listA = ['Sun','Mon','Tues']
val = 'day'
print ("The Given list : ",listA)
print ("Value to be attached : ",val)
# With map and lambda
res = list(map(lambda i: (i, val), listA))
print ("List with associated vlaues:\n" ,res)

输出结果

运行上面的代码给我们以下结果-

The Given list : ['Sun', 'Mon', 'Tues']
Value to be attached : day
List with associated vlaues:
[('Sun', 'day'), ('Mon', 'day'), ('Tues', 'day')]