【问题标题】:Convert string list of lists to integer in python在python中将列表的字符串列表转换为整数
【发布时间】:2020-10-28 12:50:18
【问题描述】:

我在一个文本文件中有一个数据集,我读取它然后拆分它的行并创建了一个列表列表,如

[['1 2 3'], ['4 5 6'], ... , ['7 8 9']]

如何将此列表转换为这样的整数列表?

[[1,2,3],[4,5,6],...,[7,8,9]]

【问题讨论】:

标签: python list


【解决方案1】:

这应该对你有帮助:

lst = [['1 2 3'], ['4 5 6'],['7 8 9']]
lst = [elem.split(' ') for lstt in lst for elem in lstt]
lst = [[int(num) for num in lstt[:]] for lstt in lst]

输出:

>>> lst
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

【讨论】:

  • [list(map(int, elem.split(' '))) for lstt in lst for elem in lstt] 这就是地图的用途。
  • YW!很高兴能帮助你!
  • @Sushil 它产生[[1, 2, 3], [4, 5, 6], [7, 8, 9]] 并且你得到了一些不同的东西,因为你不是在原始列表上运行它,而是在一个已经处理的列表上运行它。使用 one-liners 的原因是为了避免可能导致此类错误的多个中间分配。
  • 我赶时间,所以我忘了删除.split() 行XD。但是,是的。这是实现相同输出的另一种方式。
【解决方案2】:
raw = [['1 2 3'], ['4 5 6'], ['7 8 9']]
data = [[int(i) for i in x[0].split(' ')] for x in raw]   

【讨论】:

    【解决方案3】:
    1. 大列表中的每个元素,我们需要将其设为 String 并将 ' 替换为空字符串,然后用空格分隔,这样您就可以获得字符串类型的元素列表,但您需要将其转换为整数。李>
    list1 = [['1 2 3'], ['4 5 6']]
    for i in range(len(list1)):
       list1[i] = [int(e) for e in " ".join(list1[i]).replace("\'","").split()]
    
    print(list1)
    
    

    【讨论】:

      【解决方案4】:

      我编写了一个基本代码,将包含字符串元素的列表转换为 int 元素,希望下面的代码可以解决您的问题

      lst = [['1 2 3'], ['4 5 6'],['7 8 9']]
      lst2 = [elem.split(' ') for lst_ele in lst for elem in lst_ele]
      final_list = []
      for lists in lst2:
          test_list = list(map(int, lists)) 
          final_list.append(test_list)
      print(final_list)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-08
        • 2017-07-30
        • 1970-01-01
        • 1970-01-01
        • 2023-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多