繁体   English   中英

Python-如果列表元素不存在,则排除变量

[英]Python - Exclude variable if list element doesn't exist

Python新手-无法在网上找到任何类似内容。

我正在尝试分析一个大型数据集,其中包含许多行长不同的行。 我的数据示例可能是:“ LY R15 515 750 601 999 999”,其中每行的元素数量不同。 我希望列变量引用每个后续元素,但前提是该元素存在。 稍后,我将对带有数字表达式的if语句使用所有列变量。

data = 'LY R15 515 750 601 999'
remove_blanks = ['']
entries = data.split()
''.join([i for i in entries if i not in remove_blanks])
trash = (entries[0], entries[1])
time = int(entries[2])
column_1 = int(entries[3])
column_2 = int(entries[4])
column_3 = int(entries[5])
column_4 = int(entries[6])
column_5 = int(entries[7])
column_6 = int(entries[8])
column_7 = int(entries[9])
column_8 = int(entries[10])
column_9 = int(entries[11])
column_10 = int(entries[12])
column_11 = int(entries[13])
column_12 = int(entries[14])
column_13 = int(entries[15])
column_14 = int(entries[16])
column_15 = int(entries[17])
column_16 = int(entries[18])
column_17 = int(entries[19])
column_18 = int(entries[20])
print(entries)

我收到的错误:

column_3 = int(entries [5])

IndexError:列表索引超出范围

我知道它正在发生,因为该元素在列表中不存在。 本质上,如果一个元素不存在,则我不希望该变量被考虑。 请帮忙!

附言:我敢肯定有一种简单得多的写方法,所以,如果有的话,请告诉我!

具有名为column_1column_18变量不是很方便。

代替

column_1 = int(entries[3])
column_2 = int(entries[4])    
column_3 = int(entries[5])
... etc, etc ...

考虑

column = [None] + [int(v) for v in entries[3:]]

然后使用column[3]代替column_3

[None] +是闪避,用于获取列表下标(从零开始)以匹配您的变量名称(从1开始)。

字典可能可以完成这项工作

variables = {}
for ix, value in enumerate(entries[3:]):
    variables["column_{0}".format(ix)] = int(value)

你得到

{'column_1': 601, 'column_0': 750, 'column_2': 999}

但是,使用熊猫等软件包进行数据分析会容易得多。

暂无
暂无

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

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