首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否删除2d列表中第一个出现的单词?

是否删除2d列表中第一个出现的单词?
EN

Stack Overflow用户
提问于 2018-05-28 17:55:04
回答 2查看 68关注 0票数 1

我有一个这样的列表

代码语言:javascript
复制
[['a', 'word'],
['University', 'org'],
['of', 'org'],
['Michigan', 'org'], 
['Michigan', 'country']]

我想要做的是,如果我在第一次迭代中找到了密歇根这个词,我将返回标签,并将该词替换为类似于"deleted“的内容,当我再次迭代时,我应该找到这样的列表

代码语言:javascript
复制
[['a', 'word'],
['University', 'org'],
['of', 'org'],
['deleted', 'org'],
['Michigan', 'country']]

我尝试的是

代码语言:javascript
复制
for i in range(len(list)):

    if word.lower()==list[i][0].lower():
        found= list[i][1]

        list.pop(i)
        list[i][0] = "deletedword"


        break
EN

回答 2

Stack Overflow用户

发布于 2018-05-28 18:04:39

使用生成器表达式查找第一个"Michigan"的位置。将其替换为所需的单词:

代码语言:javascript
复制
lst = [['a', 'word'], ['University', 'org'], ['of', 'org'], ['Michigan', 'org'], ['Michigan', 'country']]

try:
    pos = next((i, x.index('Michigan')) for i, x in enumerate(lst) if 'Michigan' in x)
    lst[pos[0]][pos[1]] = 'deleted'

except StopIteration:
    print('There is no Michigan in the list')

print(lst)

# [['a', 'word'], 
#  ['University', 'org'], 
#  ['of', 'org'], 
#  ['deleted', 'org'], 
#  ['Michigan', 'country']]
票数 3
EN

Stack Overflow用户

发布于 2018-05-28 18:05:03

您希望通过break跳出嵌套的for循环。实现此目的的一种可读方法是使用函数和return语句:

代码语言:javascript
复制
def remove_first_el(A, k='Michigan'):
    for i in range(len(A)):                         # iterate outer lists
        for j in range(len(A[i])):                  # iterate inner lists
            if A[i][j].casefold() == k.casefold():  # ignore case for comparison
                A[i][j] = 'deleted'
                return A

res = remove_first_el(lst)

print(res)

[['a', 'word'],
 ['University', 'org'],
 ['of', 'org'],
 ['deleted', 'org'],
 ['Michigan', 'country']]

如果您需要在子列表的第一个元素中添加"Michigan“,则可以相应地修改函数:

代码语言:javascript
复制
def remove_first_el_zero_pos(A, k='Michigan'):
    for i in range(len(A)):
        if A[i][0].casefold() == k.casefold():
            A[i][0] = 'deleted'
            return A
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50563646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档