我是编程新手,具有集成列表值的字符串。我试图隔离字符串中的数值,以便以后使用它们。
我试图拆分字符串,然后将其更改回列表并使用循环删除EU变量。初始定义将生成重复项的索引,并以我尝试更改的列表/字符串格式将其写入。
这是csv文件提取示例:
Country,Population,Number,code,area
,,,,
Canada,8822267,83858,EU15,central
Denmark,11413058,305010,EU6,west
Southafrica,705034,110912,EU6,south
我们正在尝试增加重复的欧盟号码人口。
def duplicates(listed, number):
return [i for i,x in enumerate(listed) if x == number]
a=list((x, duplicates(EUlist, x)) for x in set(EUlist) if EUlist.count(x) > 1)
str1 = ''.join(str(e) for e in a)
for x in range (6,27):
str2=str1.replace("EUx","")
#split=str1.split("EUx")
#Here is where I tried to split it as a list. Changing str1 back to a list. str1= [x for x in split]
这是代码产生的:
('EU6', [1, 9, 10, 14, 17, 19])('EU12', [21, 25])('EU25', [4, 5, 7, 12, 15, 16, 18, 20, 23, 24])('EU27', [2, 22])('EU9', [6, 13])('EU15', [0, 8, 26])
我试图隔离方括号中的数字,以便打印:
[1, 9, 10, 14, 17, 19]
[21, 25]
[4, 5, 7, 12, 15, 16, 18, 20, 23, 24]
[2, 22]
[6, 13]
[0, 8, 26]
这将允许我隔离索引以备将来使用。
答案 0 :(得分:0)
我不确定没有示例数据,但我认为这可能会解决问题:
def duplicates(listed, number):
return [i for i,x in enumerate(listed) if x == number]
a=list((x, duplicates(EUlist, x)) for x in set(EUlist) if EUlist.count(x) > 1)
for item in a:
print(item[1])
至少我认为这应该打印出您在问题中要问的内容。
答案 1 :(得分:0)
或者,您可以使用pandas模块并保存一些键入内容。删除第二行的四个逗号,然后:
import pandas as pd
csvfile = r'C:\Test\pops.csv'
df = pd.read_csv(csvfile)
df.groupby('membership')['Population'].sum()
将输出:
membership
Brexit 662307
EU10 10868
EU12 569219
EU15 8976639
EU25 17495803
EU27 900255
EU28 41053
EU6 13694963
EU9 105449