我有一个包含学生ID的列表:
ID = [1,2,3]
我有一张包含学生姓名及其爱好的表格:
student = [['Jack','Fishing'],['Alice','Reading'],['Mun','Football']]
我想将ID连接到我获得的学生列表中每个子列表的第一个位置:
[[1,'Jack','Fishing'],[2,'Alice','Reading'],[3,'Mun','Football']]
我试过了:
for i in range(len(student)):
student = ID[i] + student[i]
但是我收到一条错误,指出不支持的操作数类型。
答案 0 :(得分:3)
您可以将zip
与列表理解
<强>实施例强>
ID = [1,2,3]
l = [['Jack','Fishing'],['Alice','Reading'],['Mun','Football']]
newList = [[i[0]]+i[1] for i in zip(ID, l)]
print(newList)
<强>输出:强>
[[1, 'Jack', 'Fishing'], [2, 'Alice', 'Reading'], [3, 'Mun', 'Football']]
答案 1 :(得分:1)
@clink在您编写ID[i]
时,会从列表ID
中选择一个元素。列表ID
中的所有元素都是int
类型。此外,students
列表中的所有元素都是list
类型。因此,当您在+
和int
类型之间使用list
运算符时,会出现错误
TypeError: unsupported operand type(s) for +: 'int' and 'list'
您需要做的是将int
放入新的list
以获得您正在寻找的结果。以下是修改后的代码:
ID = [1,2,3]
student = [['Jack','Fishing'],['Alice','Reading'],['Mun','Football']]
for i in range(len(student)):
student[i] = [ID[i]] + student[i]
<强>输出强>
[[1, 'Jack', 'Fishing'], [2, 'Alice', 'Reading'], [3, 'Mun', 'Football']]
注意单个更改:ID[i]
已更改为[ID[i]]
。
答案 2 :(得分:0)
@ Clink-您从range(len(student))
获得的元素是int
类型并尝试与列表合并。您应该合并可迭代类型。这就是你得到这个错误的原因。
TypeError:+:'int'和'list'的不支持的操作数类型
您可以尝试Rakesh提供的解决方案,也可以采用以下方法。
[std.insert(0, ID[idx]) for idx, std in enumerate(student)]
<强>输出强> [[1,'Jack','Fishing'],[2,'Alice','Reading'],[3,'Mun','Football']]
答案 3 :(得分:0)
稍微改变一下:
bool checkArray(int a, int b, int c, int d) {
if (d > 6) {
d = 0;
++c;
}
if (c > 5) {
c = 0;
++b;
}
if (b > 4) {
b = 0;
++a;
}
if (a > 3)
return false;
if (array[a][b][c][d] == something)
return true;
return checkArray(a,b,c,d+1);
}
输出:
ID = [1,2,3]
student = [['Jack','Fishing'],['Alice','Reading'],['Mun','Football']]
for i in range(len(student)):
student[i].insert(0,ID[i])
print(student)
答案 4 :(得分:0)
你不需要循环或任何东西只是尝试:
ID = [1,2,3]
student = [['Jack','Fishing'],['Alice','Reading'],['Mun','Football']]
print(list(zip(ID,student)))
输出:
[(1, ['Jack', 'Fishing']), (2, ['Alice', 'Reading']), (3, ['Mun', 'Football'])]
如果您不想要嵌套列表,那么:
print(list(map(lambda x:[x[0],*x[1]],zip(ID,student))))
输出:
[[1, 'Jack', 'Fishing'], [2, 'Alice', 'Reading'], [3, 'Mun', 'Football']]