有什么方法可以访问元组列表中每个元组的第二个元素吗?

2024-06-10 17:21:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个元组列表,每个元组中有两个元素,如下所示:

[('cat', 'meow'), ('dog', 'bark'), ('wolf', 'bark'), ('cow', 'moo')]

我正在搜索以前元组中有树皮或喵喵叫声的元组,并打印动物名称:

^{pr2}$

我知道这可以通过使用C链接列表中的上一个和下一个指针来实现,但是在Python中有没有内置的方法来实现呢?在


Tags: 名称元素列表链接cat元组动物dog
3条回答

您可以使用一个简单的列表理解方法(无论如何都需要扫描元素):

v = [("cat", "meow"), ("dog", "bark"), ("wolf", "bark"), ("cow", "moo")]

print [ itm[0] for itm in v if itm[1] in ["bark", "meow"] ]

我不认为你需要一个内置的方法来做到这一点,它也不可用。您可以简单地扫描列表中的每个元素并得到结果。看看这个:

L = [("cat", "meow"), ("dog", "bark"), ("wolf", "bark"), ("cow", "moo")]
for idx in range(1,len(L)):
    if L[idx][1] == "bark":
        if L[idx-1][1] in ["bark", "meow"]:
            print L[idx-1][0]+", "+L[idx][0]

希望有帮助。在

list = [('cat', 'meow'), ('dog', 'bark'), ('wolf', 'bark'), ('cow', 'moo')]
filter1st = ["bark","meow"]
filter2nd = ["bark"]

for i in range(1,len(list)):
  (name1,sound1)=list[i-1]
  (name2,sound2)=list[i]
  if sound1 in filter1st and sound2 in filter2nd:
    print name1 + ", " + name2

相关问题 更多 >