我想:
此Java代码的等效项:
//Some list...
ArrayList<String> example;
...
//Index into data structure
example.get(i);
//Check for some string...
if (example.get(i).contains("someText")){
somestuff;
}
//Store in some other variable
exam = example.get(i)
这就是我在Java中有效尝试的内容,但是我希望能够使用Python dictionarties做到这一点但是我不确定这是否可行,因为我发现Python文档很难阅读。
答案 0 :(得分:4)
Python字典作为哈希表实现,因此没有内部排序;因此,“位置i”对于一个字典来说是一个完全荒谬的概念 - 它就像要求最黄色的dict条目,或者最不像骆驼的那些......这些概念不适用于dict条目,并且“位置我“完全不适用。”
i
来自何处,即您尝试解决的真正的问题是什么?如果您的要求是遍历字典,那么您可以直接执行该操作,而无需使用“数字索引”。或者,如果您确实需要保留某些特定的顺序或其他,那么您不使用dict,而是使用一些不同的数据结构。如果你确切地解释了你想要解决的目的,我相信我们可以帮助你。
答案 1 :(得分:2)
直接翻译(对于ArrayList<String>
,你不需要字典,你想要一个列表):
example = ["foo", "bar", "baz"]
str = example[i]
if "someText" in str:
somestuff()
习惯于for
关键字,但它在Python中很棒:
for str in example:
if "someText" in str:
someStuff()
以下是使用词典的示例:
fruits = {
"apple": "red",
"orange": "orange",
"banana": "yellow",
"pear": "green"
}
for key in fruits:
if fruits[key] == "apple":
print "An apple is my favorite fruit, and it is", fruits[key]
else:
print "A", key, "is not my favorite fruit, and it is", fruits[key]
在字典上使用for
进行迭代会产生键,您仍然需要为项目本身编制索引。正如亚力克斯指出的那样,我们真的在离线基础上用如此少的信息来回答你,而且听起来你并没有根植于数据结构(每次迭代时字典可能会产生不同的顺序)。
答案 2 :(得分:1)
哟可以这样做,以重现与Java中的示例相同的行为。
# Some list
example = {} # or example = dict()
...
# Index into data estructure.
example[example.keys(i)]
# Check for some string...
if example[example.keys(i)] == 'someText' :
pass
# Store in some other variable...
exam = example[example.keys(i)]
del example[example.keys(i)]
# ...or
exam = example.pop(example.keys(i))
答案 3 :(得分:0)
Python的优点在于您可以交互式地尝试代码。
因此我们创建了一个list
,就像Java List
:
>>> mylist = ["python","java","ruby"]
>>> mylist
['python', 'java', 'ruby']
我们可以通过索引在列表中输入一个条目:
>>> mylist[0]
'python'
使用find
函数搜索子字符串:
>>> mylist[1].find("av")
1
>>> mylist[1].find("ub")
-1
如果找不到字符串,则返回-1。
将条目复制到新变量就完成了您的期望:
>>> newvalue = mylist[2]
>>> newvalue
'ruby'
或者我们可以创建一个dict
,它类似于Java Map
,按键而不是索引存储,但这些工作与Python中的列表非常相似:
>>> mydict = { 'python':'Guido', 'java':'James', 'ruby':'Yukihiro' }
>>> mydict['java']
'James'
>>> othervalue = mydict['ruby']
>>> othervalue
'Yukihiro'
>>> mydict['python'].find('uid')
1
>>> mydict['python'].find('hiro')
-1
>>> mydict['ruby'].find('hiro')
4