我是python新手。我只是想做一些事情来了解python
我现在要做的是合并两个大小相同的数组。条件是,如果key是一个特定的值(nk
,在我的例子中),那么value应该附加到前一个key或当前key
下面是我编写的代码及其工作原理。我确信我写了一个非常糟糕的代码(初学者:)
下面的代码有两个数组。键和值。我想做的是,如果key中的值是nk
,那么values数组中的特定元素将被附加到一个列表中,其中包含先前获得的key
import json
keys = ["one", "nk", "nk", "two", "nk", "three", "nk", "four", "nk"]
values = ["quick", "brown", "fox", "jumps", "on", "lazy", "dog", "asfdsagfds", "sdfgre"]
mydict = []
key = "head"
val = []
for i in range(0, len(keys)):
if(keys[i] != "nk") :
mydict.append({key:val})
key = ""
val = []
key = keys[i]
val.append(values[i])
else :
val.append(values[i])
if(i == len(keys)-1) :
mydict.append({key:val})
print(json.dumps(mydict, indent=4))
输出:
[
{
"head": []
},
{
"one": [
"quick",
"brown",
"fox"
]
},
{
"two": [
"jumps",
"on"
]
},
{
"three": [
"lazy",
"dog"
]
},
{
"four": [
"asfdsagfds",
"sdfgre"
]
}
]
现在的问题是,是否有任何简单的方法可以使用任何python内置函数来实现这一点
在Python中,可以使用
zip
函数同时迭代两个列表,并且可以:一般来说,使用索引对列表进行迭代被认为是“非Pythonic的”
你的代码一点也不差。没有解决这个特定问题的内置函数,但是可以使用
zip()
并行迭代两个列表。使用zip()
并结合dict包含对对象的引用而不是副本这一事实,可以在不跟踪数组索引的情况下编写代码:相关问题 更多 >
编程相关推荐