所有
我有以下问题。我有一个元组列表,如果元组包含一个变量,我想找到一个元组的索引。这是我到目前为止的简单代码:
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
我检查了几篇类似的文章,但他们没有帮我解决问题。我有什么想法吗?
答案 0 :(得分:4)
以下内容将返回第一项为s
indices = [i for i, tupl in enumerate(items) if tupl[0] == s]
答案 1 :(得分:1)
您正在检查list
中items
是否存在,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'
所以你根本不需要索引。