gpt4 book ai didi

python - 如果元素(字符串)以字母/数字开头,如何选择列表组中的列表元素?

转载 作者:太空宇宙 更新时间:2023-11-04 11:21:48 25 4
gpt4 key购买 nike

这里我想选择每个列表中满足以'6'开头的条件的元素。但是我没有找到实现它的方法。

列表是从数据框转换而来的:

d = {'c1': ['64774', '60240', '60500', '19303', '38724', '11402'], 
'c2': ['', '95868', '95867', '60271', '60502', '19125'],
'c3':['','','','','95867','60500']}
df= pd.DataFrame(data=d)
df
  c1     c2     c3
64774
60240 95868
60500 95867
19303 60271
38724 60502 95867
11402 19125 60500
list = df.values.tolist()
list = str(list)
list

[['64774', '', ''],
['60240', '95868', ''],
['60500', '95867', ''],
['19303', '60271', ''],
['38724', '60502', '95867'],
['11402', '19125', '60500']]

我试过这样的代码:

[x for x in list if x.startswith('6')]

但是它只为满足条件的元素返回'6'

['6', '6', '6', '6', '6', '6', '6', '6', '6']

我正在寻找的是一组列表,例如:

"[['64774'], ['60240'], ['60500'], ['60271'], ['60502'], ['60500']]"

最佳答案

当您执行 list = str(list) 时,您正在将列表转换为字符串表示形式,即 list 变为

"[['64774', '', ''], ['60240', '95868', ''], ['60500', '95867', ''], ['19303', '60271', ''], ['38724', '60502', '95867'], ['11402', '19125', '60500']]"

然后使用列表推导遍历字符串

[x for x in list if x.startswith('6')]

它生成字符串中的每个单独字符,这意味着您只需找到字符串中所有出现的 6,因此您的结果是

['6', '6', '6', '6', '6', '6', '6', '6', '6']

旁注:不要使用隐藏内置函数的变量名,如 listdict 等,这几乎肯定会导致问题。

我不确定是否有任何特定原因需要为您的问题使用数据框/ Pandas 。如果没有,您可以简单地使用列表理解

d = {
'c1': ['64774', '60240', '60500', '19303', '38724', '11402'],
'c2': ['', '95868', '95867', '60271', '60502', '19125'],
'c3':['','','','','95867','60500']
}

d2 = [[x] for v in d.values() for x in v if x.startswith('6')]
# d2: [['64774'], ['60240'], ['60500'], ['60271'], ['60502'], ['60500']]

关于python - 如果元素(字符串)以字母/数字开头,如何选择列表组中的列表元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55838228/

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