Python - 不同长度的列表列表

时间:2017-10-26 03:37:11

标签: python arrays list

我需要创建一个包含两个列表的列表。 像

这样的东西
biglist = [list1,list2]

list1 = [1,2,3]
list2 = [4,5,6,7,8]

其中list1list2具有不同的长度,并从文件中导入。

我是通过以下方式做到的:

biglist = []
list1 = #...taken from file. I checked this and it poduces a list exactly how I want it to be: [1,2,3]
biglist.append(list1)

同样适用于list2

但问题是我得到了

biglist = [array([1,2,3]),array([4,5,6,7,8])]

而不是

biglist = [[1,2,3],[4,5,6,7,8]]

我真的不想要array这个东西,我更喜欢简单的列表。 如何解决这个问题?

5 个答案:

答案 0 :(得分:2)

只需使用list1方法转换您的list2numpy.ndarray.tolist()(这些确实令人困惑的名称,因为这些名称是numpy数组,只是注释),而且

biglist = [list1.tolist(), list2.tolist()]

答案 1 :(得分:1)

请尝试:

biglist.append(list(list1))
biglist.append(list(list2))

或者如果它们是numpy数组

biglist.append(list1.tolist())
biglist.append(list2.tolist())

答案 2 :(得分:0)

您的biglist似乎是numpy array的列表。所以, 通过这种方式将numpy array转换为list以获得所需的输出。

  

np.array(LIST_NAME).tolist()

new_biglist = []
for ls in biglist:
    new_biglist.append(ls.tolist())

答案 3 :(得分:0)

  • 创建包含所有元素的列表:new_list = list1 + list2

  • 要创建一个包含两个列表的列表:new_list = [list1, list2]

我想你想要第二个解决方案。请注意,列表中可以包含其他数据类型。列表可以包含["string", 10, ["another", "list"], a_variable, more_stuff],因此创建一个包含更多列表的新列表很容易。只需将每个所需对象作为项目。

更新:我不知道这是否有用(之前从未使用过numpy),但值得尝试:

new_list = [list(str(list1)[6:-1]), list(str(list2)[6:-1])]

答案 4 :(得分:0)

可能有两种方法来解决此问题:

本地功能:FROM openjdk:8-jdk-alpine RUN mkdir -p /usr/local/configserver ADD jce_policy-8.zip /tmp/ RUN unzip /tmp/jce_policy-8.zip && \ rm /tmp/jce_policy-8.zip && \ yes | cp -v /tmp/UnlimitedJCEPolicyJDK8/*.jar /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/ ADD @project.build.finalName@.jar /usr/local/configserver/ ADD run.sh run.sh RUN chmod +x run.sh CMD ./run.sh

...

---> Using cache
---> dd33d4c12d29
Step 4/8 : RUN unzip /tmp/jce_policy-8.zip && rm /tmp/jce_policy-8.zip && yes | cp -v /tmp/UnlimitedJCEPolicyJDK8/*.jar /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/

---> Running in 1071273ceee5
Archive:  /tmp/jce_policy-8.zip
unzip: short read

数字键功能:unzip: short read

list(object)

虽然问题并不要求采用最佳方法,但这里还有2美分用于评估 two 潜在方法。在这里,我们可以设计测试用例来评估每种方法的性能。

   biglist = [list(list1), list(list2)]

numpy.ndarray.tolist()操作的输出:

   bigList = [list1.tolist(), list2.tolist()]