我想连接整数和字符串值,其中整数在2D列表中,而字符串在1D列表中。
['VDM', 'MDM', 'OM']
上面提到的列表是我的字符串列表。
[[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]]
上面提到的列表是我的整数列表。
我尝试了以下代码:
for i in range(numAttr):
for j in range(5):
abc=[[attr[i]+counts[i][j]]]
print(abc)
此处numAttr是第一个1D列表中元素的数量。第二个2D列表是静态列表,即对于任何数据集,2D列表都不会更改。
上面的代码显示错误:
TypeError: can only concatenate str (not "int") to str
我想要一个看起来像这样的列表输出:
[['VDM:1','VDM:2','VDM:3','VDM:4','VDM:5'],['MDM:1','MDM:2','MDM:3','MDM:4','MDM:5'],['OM:1','OM:2','OM:3','OM:4','OM:5']]
答案 0 :(得分:2)
使用下面的嵌套列表理解:
sudo docker version
或者:
>>> l = ['VDM', 'MDM', 'OM']
>>> l2 = [[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]]
>>> [[a + ':' + str(b) for b in c] for a,c in zip(l, l2)]
[['VDM:1', 'VDM:2', 'VDM:3', 'VDM:4', 'VDM:5'], ['MDM:1', 'MDM:2', 'MDM:3', 'MDM:4', 'MDM:5'], ['OM:1', 'OM:2', 'OM:3', 'OM:4', 'OM:5']]
>>>
或者:
>>> l = ['VDM', 'MDM', 'OM']
>>> l2 = [[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]]
>>> [['{}:{}'.format(a, b) for b in c] for a,c in zip(l, l2)]
[['VDM:1', 'VDM:2', 'VDM:3', 'VDM:4', 'VDM:5'], ['MDM:1', 'MDM:2', 'MDM:3', 'MDM:4', 'MDM:5'], ['OM:1', 'OM:2', 'OM:3', 'OM:4', 'OM:5']]
>>>
或f字符串(版本> = 3.6):
>>> l = ['VDM', 'MDM', 'OM']
>>> l2 = [[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]]
>>> [['%s:%s' % (a, b) for b in c] for a,c in zip(l, l2)]
[['VDM:1', 'VDM:2', 'VDM:3', 'VDM:4', 'VDM:5'], ['MDM:1', 'MDM:2', 'MDM:3', 'MDM:4', 'MDM:5'], ['OM:1', 'OM:2', 'OM:3', 'OM:4', 'OM:5']]
>>>
答案 1 :(得分:0)
将行abc=[[attr[i]+counts[i][j]]]
更改为abc=[[attr[i]+':'+str(counts[i][j])]]
答案 2 :(得分:0)
只需将您的int
类型转换为str
for i in range(numAttr):
for j in range(5):
abc=[[attr[i]+':'+str(counts[i][j])]]
print(abc)