加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 删除元组中列表列表中的项目

发布时间:2020-12-20 11:05:40 所属栏目:Python 来源:网络整理
导读:我有一个元组列表,每个元组包含两个值.第一个值是字符串列表,第二个值是字符串: list_of_tuples = [(['this','askjsdaddsa','match1'],'done'),(['sajs','skasassas','asdasdasdasd','qwerty'],'doneagain')] 如何将元组中的第一个值减少到只包含六个字母的
我有一个元组列表,每个元组包含两个值.第一个值是字符串列表,第二个值是字符串:

list_of_tuples = [(['this','askjsdaddsa','match1'],'done'),(['sajs','skasassas','asdasdasdasd','qwerty'],'doneagain')]

如何将元组中的第一个值减少到只包含六个字母的字符串?理想情况下我会

final_list_of_tuples = [('match1',('qwerty','doneagain')]

到目前为止,我有以下内容:

for a,b in dict_refine:
    a.remove(i for i in a if len(i) != 6)

我觉得好像有一些非常基本的东西,我正在吹过去.有没有办法在一行中做到这一点?输出到字典会更容易吗?

解决方法

与涉及在Python中更改列表的大多数任务一样,此处作业的工具可能是 list comprehension,在本例中,其中两个:

>>> [([word for word in words if len(word) == 6],key) for (words,key) in list_of_tuples]
[(['match1'],(['qwerty'],'doneagain')]

内心理解[单词中的单词如果len(单词)== 6]希望清楚 – 这会将列表过滤为长度为6的单词.外部只将内部一个应用于每个元组的第一个元素并重建元组.

当然,如果您直接使用这些值,则无需构建新列表,您可以正常迭代:

for (words,key) in list_of_tuples:
    six_letter_words = [word for word in words if len(word) == 6]
    ....

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读