相关疑难解决方法(0)

python将列表转换为字典

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"的方法来实现这一点.所以,我感谢任何帮助:)

python dictionary list

71
推荐指数
3
解决办法
33万
查看次数

使用python从列表中创建字典

我需要将列表转换为字典,如下所示.奇数元素具有键,偶数元素具有值.

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)

好像在起作用

python dictionary list

27
推荐指数
4
解决办法
8万
查看次数

Python for循环一次访问两个元素

我在字典的值部分添加了一个名称和一个项的属性值:

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'>'

python for-loop

10
推荐指数
1
解决办法
1万
查看次数

返回SQLAlchemy结果作为dicts而不是列表

当我检查查询的结果时,它看起来像一个列表列表.我想返回一个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 sqlalchemy

9
推荐指数
2
解决办法
4509
查看次数

在Python中,将包含关键字对的列表添加到字典的最简单方法是什么?

我在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)

似乎相似,但我觉得这是一个不同的问题,以保证单独的回应.
我在这里做错了什么,我该如何解决?
有更简单的方法吗?

python csv dictionary python-3.x

5
推荐指数
1
解决办法
471
查看次数

如何用列表中的数据创建带有新KEY的字典?

我有以下列表,我想将其转换为字典.

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)

最简单的方法是什么?

python dictionary list

5
推荐指数
2
解决办法
175
查看次数

将列表转换为dict python

给出一个清单:

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)

什么是语法上最干净的方法来实现这一目标?

python dictionary

5
推荐指数
1
解决办法
2620
查看次数

Python 2.7:从特殊格式的列表对象中创建字典对象

我有一个列表类型对象,如:

     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)

但是,什么是聪明的单线?

python dictionary list python-2.7

4
推荐指数
1
解决办法
126
查看次数

如何将元组列表转换为字典

我有一个元组列表,如下所示:

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灵活性.

python

3
推荐指数
1
解决办法
76
查看次数

如何将以下列表转换为字典?

我有一个这样的列表:

[['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)

怎么做这样的事情?

python dictionary list

2
推荐指数
1
解决办法
153
查看次数

标签 统计

python ×10

dictionary ×7

list ×5

csv ×1

for-loop ×1

python-2.7 ×1

python-3.x ×1

sqlalchemy ×1