gpt4 book ai didi

Python:将字符串的不同部分分成数组

转载 作者:太空宇宙 更新时间:2023-11-04 08:55:44 27 4
gpt4 key购买 nike

我试图将字符串中的值(在逗号之间)分隔到列表中。这是我目前所拥有的:

x = ["1,2,3,4,5,", "6,7,8,9,10,"]
x_new = []

for j_1 in range(len(x)):

y = 0

for j_2 in range(0, len(x[j_1])):

if x[j_1][j_2] == ",":
x_new.append(j_1, (x[j_1][y: j_2]))

y = j_2 + 1
print("x_new[0] = ", x[0])
print("x_new[1] = ", x[1])

我得到的只是错误信息:

Traceback (most recent call last):
File "test.py", line 12, in <module>
x_new.append(j_1, (x[j_1][y: j_2]))
TypeError: append() takes exactly one argument (2 given)

我希望代码输出:

  • x[0] = ["1", "2", "3", "4", "5"]
  • x[1] = ["6", "7", "8", "9", "10"]

x 总是被分成 5 个字符串。

提前致谢!

最佳答案

让我们看看您的代码有什么问题。

首先,变量名让人很难理解。为什么你有 j_1j_2 而不是只有 ij?就此而言,为什么您有 j_1 而不是直接迭代 x

但无论如何,这是您的主要问题:

x_new.append(j_1, (x[j_1][y: j_2]))

这个调用没有任何意义。 append方法只接受一个参数,一个新元素追加到序列的末尾。你传递给它两个参数。此外,您将它附加到 x_new,它应该是两个列表的列表,而不是适当的子列表。我认为你想要的是:

x_new[j_1].append(x[j_1][y: j_2])

但是,在此之前,您还需要实际创建每个子列表以附加到其上。

最后,Python 无法猜测您想要它打印出什么;如果你要求它打印字符串 x_new[0] 而不是 x[0],或者打印出 x[0] 的内容> 而不是 x_new[0] 的内容,这就是您将要获得的内容。

所以:

x = ["1,2,3,4,5,", "6,7,8,9,10,"]
x_new = []

for j_1 in range(len(x)):
x_new.append([])
y = 0
for j_2 in range(0, len(x[j_1])):
if x[j_1][j_2] == ",":
x_new[j_1].append(x[j_1][y: j_2])

y = j_2 + 1

print("x[0] =", x_new[0])
print("x[1] =", x_new[1])

然而,这一切都过于复杂了。 Python 字符串有一个 split 方法。因此,您可以将整个困惑替换为:

x_new = [s.rstrip(',').split(',') for s in x]
print("x[0] =", x_new[0])
print("x[1] =", x_new[1])

rstrip(',') 用于删除尾随的逗号,因此您不会在末尾得到额外的空字符串。您可以改为使用 s.split(',')[:-1] 或其他各种方法来获得相同的效果。

关于Python:将字符串的不同部分分成数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30429829/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com