我有一个文件名列表,examples = ['f1','f2','f3','f4'],一天中的时间,t = ['am','pm']以及收集的数据类型, [ '温度', '湿度'].
从这些我想以下列格式在字典中创建字典:
dict = {'f1': { am : {'temp': [], 'humidity': []} , pm : {'temp': [], 'humidity': []}},
'f2': { am : {'temp': [], 'humidity': []} , pm : {'temp': [], 'humidity': []}},
'f3': { am : {'temp': [], 'humidity': []} , pm : {'temp': [], 'humidity': []}},
'f4': { am : {'temp': [], 'humidity': []} , pm : {'temp': [], 'humidity': []}}}
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?非常感谢先进.
我有一个列表清单,s
即查询Fruit上的数据库的结果,item[0]
是水果的名称,是水果item[1]
是否有种子,item[2]
是否可以食用.
s = [['Apple','Yes','Edible'], ['Watermellon','Yes','Yes']]
Run Code Online (Sandbox Code Playgroud)
由于我的实际列表要大得多,我想要一种非常简单的方法来引用/返回这些值.例如,print my_dict['Apple']['Seeds']
会屈服Yes
我认为我最好的选择是创建一个字典,但我正在寻找建议,如果这是一个好方法,以及如何做到这一点.
我开始编写一些代码,但我不确定如何获得第二组标题,所以我的示例使用索引代替.
my_dict = {t[0]:t[1:] for t in s}
print my_dict['Apple'][0]
Run Code Online (Sandbox Code Playgroud) 让我说我有
a = [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个字典
dictObj = { (key,[]) for key in a}
Run Code Online (Sandbox Code Playgroud)
但我得到一个不可动的类型错误.这对我来说似乎很奇怪,因为如果值列表是正确的,那很好吗?我想知道是否有人能告诉我创建哈希表的正确语法,其中所有键都是a中的元素,每个键都指向一个空数组.
我正在尝试使用 dict 理解和 python 中的三元运算来执行以下表达式:
for num in ar:
if num in seen_dict:
seen_dict[num] += 1
else:
seen_dict[num] = 1
Run Code Online (Sandbox Code Playgroud)
我试过这个:
seen_dict = { num: seen_dict[num] += 1 for num in ar if num in seen_dict else seen_dict[num] = 1}
Run Code Online (Sandbox Code Playgroud)
及其几个排列,但我不断收到语法错误。可以做我想做的吗?
更新
这是正确的语法,但不是我的 dict 只返回 1:
seen_dict = { num: (seen_dict[num] + 1) if num in seen_dict else 1 for num in ar }
有人可以解释为什么这与 for 循环的功能不同吗?谢谢你。
在一个目录images 中,图像被命名为 - 1_foo.png、2_foo.png、14_foo.png等。
图像经过 OCR 处理,文本提取物dict
通过以下代码存储在 a中 -
data_dict = {}
for i in os.listdir(images):
if str(i[1]) != '_':
k = str(i[:2]) # Get first two characters of image name and use as 'key'
else:
k = str(i[:1]) # Get first character of image name and use 'key'
# Intiates a list for each key and allows storing multiple entries
data_dict.setdefault(k, [])
data_dict[k].append(pytesseract.image_to_string(i))
Run Code Online (Sandbox Code Playgroud)
代码按预期执行。
图像的名称中可以有不同的数字,范围从 1 到 99。
这可以简化为dictionary …
我想压缩这个语法以避免双重字典理解(我希望获得一些计算时间)
d1 = {loc:list(np.sum(data, 0)) for loc, data in dicos.items()}
d2 = {loc:np.nancumsum(list(np.sum(data, 0))) for loc, data in dicos.items()}
Run Code Online (Sandbox Code Playgroud)
我试过这个没有成功
d1,d2 = [{loc:list(np.sum(data, 0)),loc:np.nancumsum(list(np.sum(data, 0)))} \
for loc, data in dicos.items()]
Run Code Online (Sandbox Code Playgroud) 我正在尝试转换此列表:
data = [{'A': 123}, {'B': 456}, {'C': 789}]
Run Code Online (Sandbox Code Playgroud)
到这本词典:
{'A': 123, 'B': 456, 'C': 789}
Run Code Online (Sandbox Code Playgroud)
通过使用字典理解:
{key: value for key, value in dictionary.items() for dictionary in data}
Run Code Online (Sandbox Code Playgroud)
例外:
NameError: name 'dictionary' is not defined
Run Code Online (Sandbox Code Playgroud) Python 有没有办法做到
new_list = [x for x in items]
Run Code Online (Sandbox Code Playgroud)
(列表理解)字典?就像是
new_dict = [x=>y for x, y in items.iteritems()]
Run Code Online (Sandbox Code Playgroud)
这样我得到
{x: y}
Run Code Online (Sandbox Code Playgroud) 我想用字典理解语法创建一个字典.
请注意,列表l
包含字符串和元组的元组,第一个元素始终是时间戳.
这有效:
d = {}
for entry in l:
if entry[0] not in d:
d[entry[0]] = []
d[entry[0]].append(entry)
Run Code Online (Sandbox Code Playgroud)
这不起作用:
d = {k[0].append(k) for k in l if k[0] in d else k[0]:k for k in l}
File "<stdin>", line 1
d = {k[0].append(k) for k in l if k[0] in d else k[0]:k for k in l}
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud) 我有一个 python 字典,我想根据键压缩成一个不同的字典:
{'field1_0': 'FieldName1', 'field2_0': 'DataType1',
'field1_1': 'FieldName 2', 'field2_1': 'DataType2'}
Run Code Online (Sandbox Code Playgroud)
在这篇文章中我的钥匙是自动表单字段名称和它们由后“提供的数字分组_ ”: field1_0
,field2_0
进行分组并且field1_1
,field2_1
由于尾号进行分组。
我想将这些分组元素组合起来,并将它们压缩成一个键值对的字典,其中分组项目的每个值都在新的字典中。
例如,以上面的字典为例。我想要一个看起来像这样的字典:
{'FieldName1': 'DataType1', 'FieldName2': 'DataType2'}
Run Code Online (Sandbox Code Playgroud)
对于我正在做的事情的上下文:我有一些动态 Django 表单,允许用户在我的项目中创建自定义报告。为此,我有 1 个表单,允许他们输入所需字段数的数字。提交此表单时,动态表单会根据输入的元素数量创建 2 个字段(1 个用于字段名称,1 个用于数据类型,即'field1_{x}': 'field name'
和'field2_{x}':'datatype'
)。我将提交这个创建我们正在讨论的 dict 的提交,并将其传递到一个不同的动态表单中,该表单根据字段名称和数据类型创建字段,然后中提琴您有可以根据 3rd 方声明创建的自定义表单。