我想做的是用“;”分隔列表中的元素。并将其添加到新列表中。我当前的代码是:
n = []
s = open("rankings.txt").readlines()
for i in s:
n[i] = s[i].split(';')[1]
s中的每个元素都包含“;”,因此它应该能够在其中拆分每个元素。这是s的内容。
['Team 1;12\n', 'Team 2;45\n', 'Team 3;66\n', 'Team 4;77\n', 'Team 5;8\n', 'Team 6;99\n', 'Team 7;22\n', 'Team 8;13\n', 'Team 9;46\n', 'Team 10;97\n', 'Team 11;64\n', 'Team 12;65\n', 'Team 13;32\n', 'Team 14;98\n', 'Team 15;78\n', 'Team 16;752\n', 'Team 17;72\n', 'Team 18;73\n', 'Team 19;76\n', 'Team 20;419\n', 'Team 21;48\n', 'Team 22;16\n', 'Team 23;469\n', 'Team 24;82\n', '\n']
我希望n包含[12、45、66 ...]
答案 0 :(得分:1)
以下代码应该可以实现您所期望的。代替<div id=showLong>
,只需使用list = ['3', 'random2', '5.05','1','Cool phrase']
并运行一个循环即可有效地完成相同任务。
readlines()
在注释后进行编辑以将类型转换为int
答案 1 :(得分:0)
您可以通过列表理解来做到这一点。 这适用于您的情况,如果您输入的内容不匹配,您可能需要根据碰到它的特定情况进行一些修改,但这并不难:
n = [int(x.split(';')[1]) for x in s if ';' in x]
其中s
是您的字符串列表。
请注意,结尾处的if是因为您的最后一项只是'\n'
,而int则忽略了'\n'
部分。这些是在不同情况下可能需要修改的部分。
如果您想让我扩展列表的含义,请在注释中写上。
答案 2 :(得分:0)
这里有几个问题:
mysqli_query($koneksi,"INSERT INTO distributor VALUES('','$nama_distributor','$alamat','"0".$telpon')");
意味着for i in s
是列表中的字符串,而不是索引。更改为i
以获取整数。
for i in range(len(s))
是一个空列表,并且对于任何非负n
都没有n[i]
。通过更改为i
来添加新成员。
n.append(...)
中有一些成员没有s
(最后一个)。也许添加一个if语句?
或者您可以以一种很好的理解来编写此代码:
;
答案 3 :(得分:0)
以下解决方案应该可以使用,并且list1是您的输入列表。
num_list = []
for ele in list1:
ele = ele.rstrip("\n")
if ele:
num_list.append(ele.split(";")[1])
print (num_list)