繁体   English   中英

使用 for 循环和 append 在字符串中的新行之后每次创建一个新列表

[英]Creating a new list each time after a new line in a string using for loop and append

我是 Python 的初学者,有一个项目有一长串数字,这些数字由 \n(新行)分隔,所以有很多数字在一起。 一长串数字以字符串形式呈现,我需要先将它们放入列表中,然后将它们转换为整数。

这是数字测试列表:

1000
2000
3000

4000
5000
6000

7000
8000
9000

10000

每个组代表一个人,因此每个人都需要有自己的列表。 在此示例中,第一个人持有号码 1000、2000 和 3000,因此他们需要有自己的包含这些号码的列表,第二个人需要有自己的包含他们的号码的列表,依此类推。

我需要每个人都有自己的数字列表,但是当我使用 string.split() function 时,它将所有数字放入一个包含空格的大列表中。 每次通过创建方法满足 \n 时,如何使用 for 循环和 .append() 创建新列表?

到目前为止,这是我的代码:

def converting(lists):
  new_list = []
  for i in lists:
    lists = new_list.append(i)

  print(new_list)

每次看到新行时如何创建单独的列表? 我期待它每次都创建一个新列表,但结果是:

['\n', '1', '0', '0', '0', '\n', '2', '0', '0', '0', '\n', '3', '0', '0', '0', '\n', '\n', '4', '0', '0', '0', '\n', '\n', '5', '0', '0', '0', '\n', '6', '0', '0', '0', '\n', '\n', '7', '0', '0', '0', '\n', '8', '0', '0', '0', '\n', '9', '0', '0', '0', '\n', '\n', '1', '0', '0', '0', '0']

它取而代之的是获取每个字符并将其输出到一个大字符串中。

我需要它是 [1000,2000,3000]、[4000,5000,6000]、[7000,8000,9000] 和 [10000]。 帮助和澄清将不胜感激!

假设s输入字符串,您可以先在双换行符上拆分,然后在换行符上拆分:

out = [list(map(int, s2.strip().split('\n')))
       for s2 in s.strip().split('\n\n')]

注意。 如果有悬空空格/换行符, strip只是一种安全,

Output:

[[1000, 2000, 3000],
 [4000, 5000, 6000],
 [7000, 8000, 9000],
 [10000]
]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM