Python在元组列表

时间:2016-01-15 00:51:08

标签: python list tuples

所有

我有以下问题。我有一个元组列表,如果元组包含一个变量,我想找到一个元组的索引。这是我到目前为止的简单代码:

items = [('show_scllo1', '100'), ('show_scllo2', '200')]
s = 'show_scllo1'
indx = items.index([tupl for tupl in items if tupl[0] == s])
print(indx)

然而我收到错误:

indx = items.index([tupl for tupl in items if tupl[0] == s])
ValueError: list.index(x): x not in list

我检查了几篇类似的文章,但他们没有帮我解决问题。我有什么想法吗?

4 个答案:

答案 0 :(得分:4)

以下内容将返回第一项为s

的元组的索引
indices = [i for i, tupl in enumerate(items) if tupl[0] == s]

答案 1 :(得分:1)

您正在检查listitems是否存在,list不包含list。相反,您应该创建每个索引的indx = [items.index(tupl) for tupl in items if tupl[0] == s] ,其中找到感兴趣的项目:

mWebView = (WebView) findViewById(R.id.web_view);

// Calling all or none of the next 3 calls does NOT change the behavior
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebChromeClient(new WebChromeClient());
mWebView.setWebViewClient(new WebViewClient());

mWebView.loadUrl("http://unicode.org/emoji/charts/full-emoji-list.html");

答案 2 :(得分:1)

index = next((i for i,v in enumerate(my_tuple_of_tuple) if v[0] == s),-1)

你应该怎么做呢

答案 3 :(得分:1)

好像你想要这个价值,所以你要求索引。

您可以使用next

在列表中搜索下一个匹配值
>>> items = [('show_scllo1', '100'), ('show_scllo2', '200')]

>>> next(number for (name, number) in items
...      if name == 'show_scllo1')
'100'

所以你根本不需要索引。