我有2个不同长度的列表,一个数字和一个字符:
var name = reader["name"];
var isNamePresent = grid.Items
.Cast<Teams.Club_Information>()
.Any(item => item.name == name);
if (isNamePresent) ... else ...
我如何遍历这些以便得到结果x = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]
y = ['A','B','C','D','E','Z','A','B','C','D','E','Z','A','B','C','D','E','F','Z','A','B','C','D','E','Z','A','B','C','D','E','Z','A','B','C','D','E','Z','A','B','C','D','E','A','B','C','D','A','B','C','Z','A','B','C','A','B','C','A','B','C','Z','A','B','C','A','B','C','A','B','C','A','B','C','A','B']
等(取决于列表中的数字/字符)?
编辑正如我在下面的评论中指出的那样,字符列表不会重复相同的值集,更清晰的例子:
如果我有1A,1B,1C,1D,1E,1Z,2A
和x = [1,2,3]
,我会寻找答案y=['A','B','C','A','B','A','B','C']
答案 0 :(得分:2)
根据您更新的示例,我认为您想要的是:
在此基础上,您可以使用:
def combine(list1, list2):
list1 = iter(list1)
for item2 in list2:
if item2 == list2[0]:
item1 = next(list1)
yield ''.join(map(str, (item1, item2)))
使用中:
>>> list(combine([1, 2, 3], ['A', 'B', 'C', 'A', 'B', 'A', 'B', 'C']))
['1A', '1B', '1C', '2A', '2B', '3A', '3B', '3C']
答案 1 :(得分:0)
p in [0;1[
也许你应该试试这个
答案 2 :(得分:-1)
由于一个列表比另一个列表大,我不知道您是否想要按照最小列表大小限制新列表大小:x
,并放弃y
上的所有额外值。如果你想这样做,你可以试试:
z = []
for i in range(len(x)):
z.append(str(x[i]) + y[i])
print (z);
你需要将明确的转换用于字符串str()
,因为你的第一个列表是整数。
如果您想扩展第一个列表,那么生成的结果为1A 1B 1C 1D 1E...
,您可以这样做:
z = [''.join(str(a) + b) for a in x for b in y]