l = ["a", "b", "c", "d", "e"]
Run Code Online (Sandbox Code Playgroud)
我想将此列表转换为如下字典:
d = {"a": "b", "c": "d", "e": ""}
Run Code Online (Sandbox Code Playgroud)
所以基本上,均衡将是关键,而赔率将是价值.我知道我可以用"非pythonic"的方式来实现它,例如if语句的for循环,但我相信应该有更"pythonic"的方法来实现这一点.所以,我感谢任何帮助:)
我需要将列表转换为字典,如下所示.奇数元素具有键,偶数元素具有值.
x = (1,'a',2,'b',3,'c') - > {1: 'a', 2: 'b', 3: 'c'}
def set(self, val_):
i = 0
for val in val_:
if i == 0:
i = 1
key = val
else:
i = 0
self.dict[key] = val
Run Code Online (Sandbox Code Playgroud)
获得相同结果的更好方法是什么?
i = iter(k)
print dict(zip(i,i))
Run Code Online (Sandbox Code Playgroud)
好像在起作用
我在字典的值部分添加了一个名称和一个项的属性值:
value+=child.get('name') + '\t' + child.text + '\t'
Run Code Online (Sandbox Code Playgroud)
每个文本由选项卡分隔.那么当我稍后处理这个值字符串时,我会在选项卡上拆分并有一个for循环来迭代列表.
如何访问for循环中的名称和值.至于每个属性,我想一次性获取名称和值,并将其写入文件.目前列表如下:
[A,B,A,B,A,B,A,B]
并为每个a,b我想写:
'<'代码名称= a'>'b'<'/ tag'>'
当我检查查询的结果时,它看起来像一个列表列表.我想返回一个dicts列表,将列名映射到结果值.如何将结果行转换为dicts?
results = db.session.query(
PendingPost.campaign_id.label('campaign_id'),
Campaign.title.label('title'),
sqlalchemy.func.count(PendingPost.status).label('status_count'),
).join(
Campaign, Campaign.id == PendingPost.campaign_id,
).join(
Areas, Areas.id == PendingPost.area_id
).filter(
sqlalchemy.func.month(PendingPost.creation_date) == datetime.datetime.utcnow().month
).group_by(
PendingPost.status,
PendingPost.campaign_id,
).all()
print(results)
[(3, 'campaign title', 1),
(4, 'campaign title', 1)]
Run Code Online (Sandbox Code Playgroud) 我在Python中有一个家庭作业问题.
我在Linux上使用Python 3.4.0版.
设计文档声明我要使用内置函数读取CSV文件,这些函数指定为names.dat,格式如下:
name:name2, name:name3, name2:name4, name3:name5\n (etc)
Run Code Online (Sandbox Code Playgroud)
然后我将这些关键字对添加到字典中,这是我坚持的部分.
我到目前为止的代码是这样的:
dictionary = dict()
database = open('names.dat', 'r')
data = database.read()
data = data.rstrip('\n')
data = data.split(',')
for item in range(len(data)):
dictionary.update(data[item-1])
Run Code Online (Sandbox Code Playgroud)
我的想法是,如果我有一个格式为"name:name2"的列表元素,并且我将该元素作为参数调用字典更新函数,它将正确映射到字典中的关键字对.
但是,情况并非如此,因为我在运行此脚本时遇到此错误:
File "MyName.py", line 7, in <module>
dictionary.update(data[item-1])
ValueError: dictionary update sequence element #0 has length 1; 2 is required
Run Code Online (Sandbox Code Playgroud)
我有以下列表,我想将其转换为字典.
newData = ['John', 4.52, 'Jane', 5.19, 'Ram', 4.09, 'Hari', 2.97, 'Sita', 3.58, 'Gita', 4.1]
Run Code Online (Sandbox Code Playgroud)
我想创建一个这样的字典:
newDict = [{'name': 'John', 'Height': 4.52},
{'name': 'Jane', 'Height': 5.19},
{'name': 'Ram', 'Height': 4.09},
{'name': 'Hari', 'Height': 2.97},
{'name': 'Sita', 'Height': 3.58},
{'name': 'Gita', 'Height': 4.1}]
Run Code Online (Sandbox Code Playgroud)
最简单的方法是什么?
给出一个清单:
source = [{'A':123},{'B':234},{'C':345}]
Run Code Online (Sandbox Code Playgroud)
我需要这个列表中的dict格式:
newDict = {'A':123,'B':234,'C':345}
Run Code Online (Sandbox Code Playgroud)
什么是语法上最干净的方法来实现这一目标?
我有一个列表类型对象,如:
f = [77.0, 'USD', 77.95,
103.9549, 'EUR', 107.3634,
128.1884, 'GBP', 132.3915,
0.7477, 'JPY', 0.777]
Run Code Online (Sandbox Code Playgroud)
我想创建一个如下的字典:
d =
{'EUR': [103.9549, 107.3634],
'GBP': [128.1884, 132.3915],
'JPY': [0.7477, 0.777],
'USD': [77.0, 77.95]}
Run Code Online (Sandbox Code Playgroud)
我试图利用这些答案将列表转换为Python中的字典,并使用python从列表中创建字典.
但是,无法找到正确的方法.
截至目前,我的解决方案是:
cs = [str(x) for x in f if type(x) in [str, unicode]]
vs = [float(x) for x in f if type(x) in [int, float]]
d = dict(zip(cs, [[vs[i],vs[i+1]] for i in range(0,len(vs),2)]))
Run Code Online (Sandbox Code Playgroud)
但是,什么是聪明的单线?
我有一个元组列表,如下所示:
lst_of_tpls = [(1, 'test2', 3, 4),(11, 'test12', 13, 14),(21, 'test22', 23,24)]
Run Code Online (Sandbox Code Playgroud)
我想将它转换为字典,使它看起来像这样:
mykeys = ['ones', 'text', 'threes', 'fours']
mydict = {'ones': [1,11,21], 'text':['test2','test12','test22'],
'threes': [3,13,23], 'fours':[4,14,24]}
Run Code Online (Sandbox Code Playgroud)
我试图列举lst_of_tpls这样的:
mydict = dict.fromkeys(mykeys, [])
for count, (ones, text, threes, fours) in enumerate(lst_of_tpls):
mydict['ones'].append(ones)
Run Code Online (Sandbox Code Playgroud)
但是这使得我希望在'ones'中看到的值也在其他"类别"中:
{'ones': [1, 11, 21], 'text': [1, 11, 21], 'threes': [1, 11, 21], 'fours': [1, 11, 21]}
Run Code Online (Sandbox Code Playgroud)
另外,我想保持mykeys灵活性.
我有一个这样的列表:
[['ok.txt', 'hello'], [10, 20], ['first_one', 'second_one'], ['done', 'pending']]
Run Code Online (Sandbox Code Playgroud)
我想将此列表转换为字典,如下所示:
{'ok.txt' : ['10', 'first_one', 'done'], 'hello' : ['20', 'second_one', 'pending']}
Run Code Online (Sandbox Code Playgroud)
怎么做这样的事情?