晚上好,
我正在尝试从多个不同的列表创建一个单数列表,但是当我将它们合并时,它只是给我[listA], [ListB]
而不是ListA, ListB
我不知道如何解释,所以请告诉我我尝试过并展示的内容我的期望。
这是我的原始代码。
N, B, E = "N", "B", "E"
data = [N, N, N, N, N, N, N,
N, N, N, N, N, N, N,
N, N, N, B, E, N, E,
N, N, N, N, B, E, N,
B, B, B, B, B, B, B,
N, E, N, B, N, N, N]
当我打印data
时,我得到结果
['N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'B', 'E', 'N', 'E', 'N', 'N', 'N', 'N', 'B', 'E', 'N', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'N', 'E', 'N', 'B', 'N', 'N', 'N']
这就是我想发生的事情,但是我很快意识到我将无法轻松地以这种格式进行编辑。所以我尝试制作6个不同的列表,然后将它们转换为一个。
N, B, E = "N", "B", "E"
Data6 = [N, N, N, N, N, N, N]
Data5 = [N, N, N, N, N, N, N]
Data4 = [N, N, N, B, E, N, E]
Data3 = [N, N, N, N, B, E, N]
Data2 = [B, B, B, B, B, B, B]
Data1 = [N, E, N, B, N, N, N]
所以这是我的基础,我尝试了两种方式将它们合并,但是在谷歌搜索了一段时间之后,我仍然一无所获
我2次尝试,其中:
data = [Data6,
Data5,
Data4,
Data3,
Data2,
Data1]
print(data)
data = []
data.append(Data6)
data.append(Data5)
data.append(Data4)
data.append(Data3)
data.append(Data2)
data.append(Data1)
print(data)
我期望我从预先创建的列表中得到结果,但是我却得到了
[['N', 'N', 'N', 'N', 'N', 'N', 'N'], ['N', 'N', 'N', 'N', 'N', 'N', 'N'], ['N', 'N', 'N', 'B', 'E', 'N', 'E'], ['N', 'N', 'N', 'N', 'B', 'E', 'N'], ['B', 'B', 'B', 'B', 'B', 'B', 'B'], ['N', 'E', 'N', 'B', 'N', 'N', 'N']]
如果有人知道如何提供帮助或我做错了什么,将不胜感激
答案 0 :(得分:2)
对于列表,应使用+
运算符。
l1 = [1,2,3,4]
l2 = [5,6,7,8]
print(l1+l2)
>> [1,2,3,4,5,6,7,8]
此操作称为串联。
您要解决的问题是:
data = Data6 + Data5 + Data4 + Data3 + Data2 + Data1
答案 1 :(得分:1)
如果我理解正确,则只需将列表连接起来:
DATA = Data6 + Data5 + Data4 + Data3 + Data2 + Data1
答案 2 :(得分:1)
使用初始值[]的总和
data = sum(data, [])
或这样构建:
data = [*Data6, *Data5, *Data4, *Data3, *Data2, *Data1]
答案 3 :(得分:1)
发生这种情况是因为您要在列表中插入列表。此操作只是将指向列表A的指针放到列表B中。因此,您拥有包含另一个列表的列表B。 您可以按照Rakesh的建议使用简单的串联(+)或array.extend()。
答案 4 :(得分:1)
您可以像这样使用扩展
N, B, E = "N", "B", "E"
Data6 = [N, N, N, N, N, N, N]
Data5 = [N, N, N, N, N, N, N]
Data4 = [N, N, N, B, E, N, E]
Data3 = [N, N, N, N, B, E, N]
Data2 = [B, B, B, B, B, B, B]
Data1 = [N, E, N, B, N, N, N]
data = []
data.extend(Data6)
data.extend(Data5)
data.extend(Data4)
data.extend(Data3)
data.extend(Data2)
data.extend(Data1)
print(data) # Output : ['N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'B', 'E', 'N', 'E', 'N', 'N', 'N', 'N', 'B', 'E', 'N', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'N', 'E', 'N', 'B', 'N', 'N', 'N']
答案 5 :(得分:0)
只需对data1,data2和Soo on的内容运行一个for循环,然后将元素压入
由于您要推送所有列表,因此它们的输出将作为列表列表
New_list = [* data1,* data2],继续,python3.6中的新方法
答案 6 :(得分:0)
要使其高效,您可以使用for
循环来连接列表。无论要连接多少个列表,都不需要一个接一个地编写。
N, B, E = "N", "B", "E"
Data6 = [N, N, N, N, N, N, N]
Data5 = [N, N, N, N, N, N, N]
Data4 = [N, N, N, B, E, N, E]
Data3 = [N, N, N, N, B, E, N]
Data2 = [B, B, B, B, B, B, B]
Data1 = [N, E, N, B, N, N, N]
data = [Data6,
Data5,
Data4,
Data3,
Data2,
Data1]
new_data = []
for dt in data:
new_data = new_data + dt
print (new_data)