我编写了一个类来处理使用外部模块的 mysql 连接,但是当我获取数据时,我希望它像这样返回:
{ 'id': '1', 'username': 'Test'}
Run Code Online (Sandbox Code Playgroud)
它目前返回:
(1, u'Test')
Run Code Online (Sandbox Code Playgroud)
我使用的代码是:
def executeQuery(self, query):
if(self.mysqlSuccess):
cursor = self.cnx.cursor()
cursor.execute(query)
for row in cursor:
print row
executeQuery('SELECT * FROM `users`')
Run Code Online (Sandbox Code Playgroud) 可能重复:将
两个列表映射到Python中的字典中
试图制作字典,其中2个列表是关键,1个是值,但我遇到了问题.这是我到目前为止:
d={}
for num in range(10):
for nbr in range(len(key)):
d[num]=key[nbr]
Run Code Online (Sandbox Code Playgroud)
说我的密钥是一个从1到9的列表,值列表是[2,4,0,9,6,6,8,6,4,5]我如何分配所以它就像它{0:2, 1:4, etc...}
这是python中IDLE2中的代码和错误.
我需要以有序的方式将每个"data"元素作为键和值"otro"包含在内.那么"数据"和"otro"就是38个字符串的列表,"dik"就是字典.
>>> for i in range(len(otro)+1):
dik[dato[i]] = otro[i]
Traceback (most recent call last):
File "<pyshell#206>", line 2, in <module>
dik[dato[i]] = otro[i]
IndexError: list index out of range
>>>
Run Code Online (Sandbox Code Playgroud)
这个问题是范围(0,38)输出 - >(0,1,2,3 ... 37)并且它都是凌乱的
我有以下列表:
brand=["Audi","Mercedes"]
speed=[130,150]
model=["sport","family"]
Run Code Online (Sandbox Code Playgroud)
我想获得相当于:
ll=[]
ll.append({'brand':'mercedes', 'speed':130, 'model':'family'})
ll.append({'brand':'mercedes', 'speed':130, 'model':'sport'})
ll.append({'brand':'audi', 'speed':130, 'model':'family'})
ll.append({'brand':'audi', 'speed':130, 'model':'sport'})
ll.append({'brand':'mercedes', 'speed':150, 'model':'family'})
ll.append({'brand':'mercedes', 'speed':150, 'model':'sport'})
ll.append({'brand':'audi', 'speed':150, 'model':'family'})
ll.append({'brand':'audi', 'speed':150, 'model':'sport'})
Run Code Online (Sandbox Code Playgroud)
我目前这样做:
from itertools import product
ll=list(product(speed, model, brand))
Run Code Online (Sandbox Code Playgroud)
我有所有需要的组合,但这只是一个列表列表而不是字典列表.我不知道是否有直接和pythonic的方式来做到这一点!
我有两个清单:
object = ['square','circle','triangle']
description = ['red','green']
Run Code Online (Sandbox Code Playgroud)
我想要输出一个词典列表:
{'square': 'red', 'circle': 'red', 'triangle': 'red'}
{'square': 'red', 'circle': 'red', 'triangle': 'green'}
{'square': 'green', 'circle': 'red', 'triangle': 'green'}
Run Code Online (Sandbox Code Playgroud)
等等
所以对象不重复,但描述可能会.每个字典都有原始的对象列表作为其键.
我不确定我想要的算法的名称,所以我找不到正确的算法.(我已经查看了python中两个列表的排列,但是它正在寻求不同的结果.两个列表的排列是同一个问题,但是使用OCAML.)
可能重复:将
两个列表映射到Python中的字典中
我有两个这样的列表:['one','two','three']和[1,2,3]
我想把它变成像这样的字典{'one':1,'two':2,'three':3}
问题是,我必须使用理解力.谢谢.
我在与Python代码相同的文件夹中有以下文本文件.
78459581
Black Ballpoint Pen
12345670
Football
49585922
Perfume
83799715
Shampoo
Run Code Online (Sandbox Code Playgroud)
我写过这个Python代码.
file = open("ProductDatabaseEdit.txt", "r")
d = {}
for line in file:
x = line.split("\n")
a=x[0]
b=x[1]
d[a]=b
print(d)
Run Code Online (Sandbox Code Playgroud)
这是我收到的结果.
b=x[1] # IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)
我的字典应如下所示:
{"78459581" : "Black Ballpoint Pen"
"12345670" : "Football"
"49585922" : "Perfume"
"83799715" : "Shampoo"}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我有一个for循环,它输出一个包含15个值的列表:
for line in data:
line # type(line) is `<class 'list'>`
# do things with line
Run Code Online (Sandbox Code Playgroud)
这line总是一个包含11个值的Python列表,即
['value1', 'value2', 'value3', 'value4', ... ]
Run Code Online (Sandbox Code Playgroud)
我有一个字典键列表,我手动创建:
['key1', 'key2', 'key3', ...]
Run Code Online (Sandbox Code Playgroud)
我想将我的键加入到for循环中每行的每个值.因此,我可以定义一个看起来像的新行
['key1': 'value1', 'key2': 'value2', 'key3': 'value3', ... ]
Run Code Online (Sandbox Code Playgroud)
这将用于for循环,即
for line in data:
line # values
# join key-value pairs
# new_line = ['key1': 'value1', 'key2': 'value2', 'key3': 'value3', ... ]
# do things with new_line
Run Code Online (Sandbox Code Playgroud)
编辑:我不相信这是一个重复的问题.zip(keys, values)不会产生预期的结果.
EDIT2:在列表中创建一个大字典会更容易吗?
[{'key1': 'value1', 'key2': 'value2', 'key3': 'value3', ... }] …Run Code Online (Sandbox Code Playgroud) 我对学习Python非常陌生,作为尝试更熟悉它的一部分,我一直在乱写编写一些代码,这些代码执行的东西没有在源代码中明确讲授我正在学习但使用相同的东西概念.
我试图做的一件事是有两个列表,例如list=["apple", "banana", "orange", "grape"]和otherlist=["ok", "good", "better", "best"]并用它们来创建一个字典,其中最终的结果dict={"ok":"apple","good":"banana","better":"orange","best":"grape"}.
但我无法弄清楚如何做到这一点.据我所知,我必须并行遍历两个列表...以便将'otherlist'中的第一个字符串指定为'list'中第一个字符串的键,依此类推.
我尝试做某种for循环,就像在
for word in otherlist:
dict[word]=???
Run Code Online (Sandbox Code Playgroud)
哪里的"???" 是我陷入困境的地方,因为我无法弄清楚如何同时迭代'list'.对这个好奇的菜鸟的任何帮助表示赞赏!:)
我有两个不同的列表:
key = ['key1', 'key2', 'key3']
value = ['value1', 'value2', 'value3']
Run Code Online (Sandbox Code Playgroud)
我想像这样映射它:
dictionary = {'key1':'value1',
'key2':'value2',
'key3':'value3'}
Run Code Online (Sandbox Code Playgroud)
我试过这个:
dictionary = {key, value}
Run Code Online (Sandbox Code Playgroud)
但我得到了这个结果:
TypeError: dict expected at most 1 arguments, got 2
Run Code Online (Sandbox Code Playgroud) python ×10
dictionary ×6
list ×2
algorithm ×1
append ×1
combinations ×1
key-value ×1
mysql ×1
python-3.x ×1