Python 查找元素并记录问题,恳请给个思路。

2021-04-22 18:18:27 +08:00
 hellogitooxx
if_list=["oo","不存在"]
list_data=["aab","abb","bba","acc","adcd","bao","ccd"] 
str_="aa"

for a_list in list_data:
     if str_[-2:] == a_list[:2]:
     	if_list.append(a_list[-1])
     else:
     	if_list.update("不存在")

我想循环 list_data 列表,当 str_="aa"有和列表中元素前面两个字符相同的,则返回对应元素最后一个,没有相同的,也要返回“不存在”,但是我这个程序不相同的,返回了“不存在”多个了,有什么好的设计呢? 恳请给个思路。

1460 次点击
所在节点    Python
10 条回复
wlsnx
2021-04-22 18:26:08 +08:00
list_data[-1] if any(str_[-2:] == a[:2] for a in list_data) else "不存在"
hello2060
2021-04-22 18:26:31 +08:00
你这是找错误吧?不用 else 在函数返回前检查一下 if_list, 为空的话插入一个不存在啊。

不过说实话你这到底要返回啥似乎都没说清楚
Wincer
2021-04-22 18:27:42 +08:00
首先:比较前两个字符相同可以使用 a_list.startswith(str_),其次你这里 if_list 又是 append 操作又是 update 操作,如果想里面不包含重复的,就把 if_list 设置成 set(),或者设置一个标志位默认为 0,当字符串相同的时候标志位置 1,else 操作就不需要了,for 循环之后判断这个标志位如果还是 0,就添加 “不存在” 进 if_list
hellogitooxx
2021-04-22 19:16:19 +08:00
@Wincer
else:
if_list.update("不存在")这里写错了,应该是 if_list.append("不存在")进去的。想要得到的结果就是 for a_list in list_data: 当相同的时候,要返回“不存在”,只需要返回一次就行了,但是我上面这个程序不相同的,返回了“不存在”多个了了。
hellogitooxx
2021-04-22 19:22:51 +08:00
@hello2060
```

for a_list in list_data:
if str_[-2:] == a_list[:2]:
if_list.append(a_list[-1])
else:
if_list.update("不存在")
```
没有相同的,也要返回“不存在”,但是我这个程序不相同的,返回了“不存在”多个了,我只需要返回一个”不存在“
hellogitooxx
2021-04-22 19:25:21 +08:00
@Wincer if_list 里面是要允许重复值的,这是前提,我这个题目主要是,当 str_="aa"有和列表中元素前面两个字符相同的,刚把当前元素添加到 if_list 中,要是没有就添加”不存在“。
hello2060
2021-04-22 19:29:32 +08:00
```
for a_list in list_data:
if str_[-2:] == a_list[:2]:
if_list.append(a_list[-1])

return len(if_list) == 0 ? if_list : ['不存在']
```
hellogitooxx
2021-04-22 19:42:27 +08:00
@hello2060

是需要在 if_list 前提上.append 的,return len(if_list) == 0 ? if_list : ['不存在'] 这个,i 前面 f_list=["oo","不存在"]已经有两个元素了。
hello2060
2021-04-22 20:37:17 +08:00
@hellogitooxx 说实话,我估计人没看的懂你到底想做啥。。
hellogitooxx
2021-04-22 22:17:11 +08:00
@hello2060 我找到思路了,感谢你的回答。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/772517

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX