所以我有一个如下所示的列表:
mylist = ['100003028593816', '1784394111', '100008137385157', '100000462582000','100001633550680', '100000757743079']
(此列表可能因不同的输入而异,等等。这只是一个例子)
我想从该数组创建一个如下所示的STRING。
string = '{"100003028593816":1,"1784394111":1,"100008137385157":1,"100000462582000":1,"100001633550680":1,"100000757743079":1}'
(注意:看看它们是如何与上面相同的值,它们只是以不同方式包装。这就是他们需要如何发布。所以我非常想从数组中获取值并将它们包装为{" value1":1," value2":1}等。
答案 0 :(得分:3)
使用列表理解这是一种有点难以理解的方法:
'{%s}' % ','.join('"%s":1' % a for a in mylist)
答案 1 :(得分:1)
str(dict.fromkeys(mylist,1))
很好......但它会破坏你的排序(dicts没有顺序,但是列表没有顺序)
答案 2 :(得分:1)
虽然我认为您应该首先发布您先尝试过的代码而不应该请求勺子,但是,这里的答案简单明了:
mylist = ['100003028593816', '1784394111', '100008137385157', '100000462582000','100001633550680', '100000757743079']
str='{'
for i in range(len(mylist)):
str+='\"'+mylist[i]+'\":1,'
str=str[:-1] #remove the last trailing comma
str+='}'
print str
输出:
{"100003028593816":1,"1784394111":1,"100008137385157":1,"100000462582000":1,"100001633550680":1,"100000757743079":1}
答案 3 :(得分:0)
这是使用lambda函数执行此操作的方法:
'{' + ','.join(map(lambda x: '"' + x + '":1', mylist)) + '}'
干杯!
答案 4 :(得分:0)
将数组转换为字典格式
这是一个解析数组的每个索引并将其转换为dict格式的解决方案:
string = "{\""
mylist = ['100003028593816', '1784394111', '100008137385157', '100000462582000','100001633550680', '100000757743079']
#The first n-1 array indicies
for i in range(len(mylist)-1):
string += (mylist[i] + "\":1,\"")
#last array index with closing bracket
string += (mylist[len(mylist)-1] + "\":1}")
结果如下:
>>> string
'{"100003028593816":1,"1784394111":1,"100008137385157":1,"100000462582000":1,"100001633550680":1,"100000757743079":1}'
请注意,\“以便我们可以在字符串中打印引号,因此 \”:1, \“将变为”:1“,最后 \“:1}将变为”:1}。