我正在使用pandas从excel文件中获取列表.

start_path = r'C:\scratch\\'
File = 'test.xlsx'
import pandas as pd 
mylist = []
df = pd.read_excel(start_path + File, sheet_name='GIS')
mylist = df['Column A'].tolist()

list :

mylist = ['LB-52/LP-7', 'LB-53/LI-5', 'LB-54/LP-8', 'LB-55', 'LB-56', 'ABC']

我的目标是从这个列表中创建一个新列表,只包含以LB开头的元素.因此,新列表将是:

newlist = ['LB-52/LP-7', 'LB-53/LI-5', 'LB-54/LP-8', 'LB-55', 'LB-56']

或者从列表中删除所有不以"LB"开头的元素(从而从列表中删除ABC).

newlist = [str(x for x in mylist if "LB" in x)]

我试过上面的方法,结果是:

['<generator object <genexpr> at 0x0000024B5B8F62C8>']

我还try 了以下方法:

approved = ['LB']
mylist[:] = [str(x for x in mylist if any(sub in x for sub in approved))]

这将获得与之前相同的生成器对象消息.

我觉得这真的很简单,但无法理解.

推荐答案

你可以在列表理解中使用str.startswith:

mylist = ["LB-52/LP-7", "LB-53/LI-5", "LB-54/LP-8", "LB-55", "LB-56", "ABC"]

newlist = [value for value in mylist if value.startswith("LB")]
print(newlist)

输出:

['LB-52/LP-7', 'LB-53/LI-5', 'LB-54/LP-8', 'LB-55', 'LB-56']

您可以在newlist = [str(x for x in mylist if "LB" in x)]中删除str(),但这会留下xxxLBxxx这样的值(LB在字符串中)

Python相关问答推荐

如何让程序打印新段落上的每一行?

如何更改分组条形图中条形图的 colored颜色 ?

无法使用DBFS File API路径附加到CSV In Datricks(OSError Errno 95操作不支持)

在vscode上使用Python虚拟环境时((env))

当点击tkinter菜单而不是菜单选项时,如何执行命令?

Python中的变量每次增加超过1

在嵌套span下的span中擦除信息

在极中解析带有数字和SI前缀的字符串

下三角形掩码与seaborn clustermap bug

pysnmp—lextudio使用next()和getCmd()生成器导致TypeError:tuple对象不是迭代器''

pandas fill和bfill基于另一列中的条件

如何在Gekko中使用分层条件约束

处理Gekko的非最优解

Python OPCUA,modbus通信代码运行3小时后出现RuntimeError

Regex用于匹配Python中逗号分隔的AWS区域

有没有一种方法可以在朗肯代理中集成向量嵌入

Stats.ttest_ind:提取df值

为什么在生成时间序列时,元组索引会超出范围?

多个布尔条件的`jax.lax.cond`等效项

更新-如何与一个我无法使用python获得的按钮进行交互-Selify?