GVKun编程网logo

有没有一种快速的方法来在Python中生成字母的字典?(有没有一种快速的方法来在python中生成字母的字典)

27

关于有没有一种快速的方法来在Python中生成字母的字典?和有没有一种快速的方法来在python中生成字母的字典的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于python中有没有一种快速

关于有没有一种快速的方法来在Python中生成字母的字典?有没有一种快速的方法来在python中生成字母的字典的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于python中有没有一种快速的方法可以将字符串'1/100'转换为float 0.01?、python中生成字典、Python,成对的“距离”,需要一种快速的方法来实现、在Python中从列表生成字典等相关知识的信息别忘了在本站进行查找喔。

本文目录一览:

有没有一种快速的方法来在Python中生成字母的字典?(有没有一种快速的方法来在python中生成字母的字典)

有没有一种快速的方法来在Python中生成字母的字典?(有没有一种快速的方法来在python中生成字母的字典)

我想生成一个以字母作为键的字典,类似

letter_count = {'a': 0,'b': 0,'c': 0}

生成该字典而不是我必须键入它的快速方法是什么?

谢谢你的帮助。

编辑
谢谢大家的解决方案:)

nosklo的
解决方案可能是最短的

另外,感谢您提醒我有关Python字符串模块的信息。

python中有没有一种快速的方法可以将字符串'1/100'转换为float 0.01?

python中有没有一种快速的方法可以将字符串'1/100'转换为float 0.01?

如何解决python中有没有一种快速的方法可以将字符串''1/100''转换为float 0.01??

我有这个df:

class MyTask(BaseTaskSet):

    def action_one(self):
        self.client.get(''dummy_path'')

我想将其转换为十进制赔率。

我知道我可以使用 Home Away 5+ corners 6+ corners 7+ corners 8+ corners 9+ corners 10+ corners 11+ corners 12+ corners 13+ corners 14+ corners 0 Aston Villa Leeds 1/100 1/50 1/20 1/8 1/4 4/9 4/6 11/10 13/8 5/2 1 West Ham Manchester City 1/100 1/33 1/12 1/6 1/3 4/7 10/11 11/8 2/1 3/1 2 Fulham Crystal Palace 1/66 1/33 1/10 1/5 2/5 4/6 11/10 7/4 5/2 4/1 3 Manchester Utd Chelsea 1/66 1/33 1/8 1/5 2/5 8/11 11/10 15/8 11/4 4/1 4 Liverpool Sheffield Utd 1/100 1/50 1/20 1/8 2/7 4/9 8/11 11/10 7/4 5/2 5 Southampton Everton 1/66 1/33 1/12 1/5 4/11 8/13 1/1 13/8 5/2 7/2 6 Wolves Newcastle 1/50 1/20 1/8 2/7 1/2 4/5 5/4 2/1 3/1 5/1 7 Arsenal Leicester 1/100 1/33 1/12 1/6 1/3 1/2 10/11 11/8 2/1 3/1 8 Brighton West brom 1/66 1/33 1/8 1/4 2/5 4/6 11/10 7/4 11/4 4/1 9 Burnley Tottenham 1/100 1/33 1/12 1/6 1/3 4/7 10/11 11/8 9/4 3/1 来实现这一目标,但我想知道是否有更快的方法来实现这一目标。

解决方法

按照@ ch3steR的建议,使用pd.eval并尝试

df[''col_name''] = pd.eval(target=df,expr=df[''col_name''])
,

eval函数呢?

result = eval(''1/2'')

编辑:正如评论者所指出的那样,eval具有安全隐患,因为它有可能执行任意代码。

,

您可以同时使用熊猫applyeval

df.loc[:,''5+ corners'':] = df.loc[:,''5+ corners'':].apply(pd.eval)

>>> print(df)
>>>
        Home            Away     5+ corners  ... 12+ corners 13+ corners 14+ corners
0     AstonVilla           Leeds       0.01  ...         1.1       1.625         2.5
1        WestHam  ManchesterCity       0.01  ...       1.375           2           3
2         Fulham   CrystalPalace  0.0151515  ...        1.75         2.5           4
3  ManchesterUtd         Chelsea  0.0151515  ...       1.875        2.75           4
4      Liverpool    SheffieldUtd       0.01  ...         1.1        1.75         2.5

这仅适用于最多100行的数据框,请参见here

python中生成字典

python中生成字典

 

1、

>>> a = {"a":111,"b":222,"c":333,"d":444}
>>> a
{'a': 111, 'b': 222, 'c': 333, 'd': 444}
>>> len(a)
4
>>> type(a)
<class 'dict'>

 

2、

>>> a = dict((("a",111),("b",222),("c",333),("d",444)))
>>> a
{'a': 111, 'b': 222, 'c': 333, 'd': 444}
>>> len(a)
4
>>> type(a)
<class 'dict'>

 

3、

>>> a = dict(a = 111, b = 222, c = 333, d = 444)
>>> a
{'a': 111, 'b': 222, 'c': 333, 'd': 444}
>>> len(a)
4
>>> type(a)
<class 'dict'>

 

4、

>>> a = {}
>>> a["a"] = 111
>>> a["b"] = 222
>>> a
{'a': 111, 'b': 222}
>>> len(a)
2
>>> type(a)
<class 'dict'>

 

Python,成对的“距离”,需要一种快速的方法来实现

Python,成对的“距离”,需要一种快速的方法来实现

对于我的博士学位的副项目,我从事用Python建模某些系统的任务。在效率方面,我的程序遇到了以下问题的瓶颈,我将在“最小工作示例”中介绍该问题。

我处理大量由其3D起点和终点编码的线段,因此每个线段均由6个标量表示。

我需要计算成对的最小段间距离。在此来源中找到了两个线段之间的最小距离的解析表达式。致MWE:

import numpy as np
N_segments = 1000
List_of_segments = np.random.rand(N_segments,6)

Pairwise_minimal_distance_matrix = np.zeros( (N_segments,N_segments) )
for i in range(N_segments):
    for j in range(i+1,N_segments):

        p0 = List_of_segments[i,0:3] #beginning point of segment i
        p1 = List_of_segments[i,3:6] #end point of segment i
        q0 = List_of_segments[j,0:3] #beginning point of segment j
        q1 = List_of_segments[j,3:6] #end point of segment j
        #for readability,some definitions
        a = np.dot( p1-p0,p1-p0)
        b = np.dot( p1-p0,q1-q0)
        c = np.dot( q1-q0,q1-q0)
        d = np.dot( p1-p0,p0-q0)
        e = np.dot( q1-q0,p0-q0)
        s = (b*e-c*d)/(a*c-b*b)
        t = (a*e-b*d)/(a*c-b*b)
        #the minimal distance between segment i and j
        Pairwise_minimal_distance_matrix[i,j] = sqrt(sum( (p0+(p1-p0)*s-(q0+(q1-q0)*t))**2)) #minimal distance

现在,我意识到这是非常低效的,这就是为什么我在这里。我已经广泛研究了如何避免循环,但是遇到了一个问题。显然,这种计算最好用python的cdist完成。但是,它可以处理的自定义距离函数必须是二进制函数。在我的情况下,这是一个问题,因为我的向量的长度具体为6,并且必须按位分割为它们的前3个分量。我认为我无法将距离计算转换为二进制函数。

任何输入表示赞赏。

在Python中从列表生成字典

在Python中从列表生成字典

这是原始列​​表:

['name','value','name','value']

等等.我需要将名称/值对提取到字典中:

{'name': 'value','name': 'value','name': 'value'}

有人可以详细说明最简单的方法吗?

解决方法

如果L是您的原始列表,您可以使用 zip(*[iter(L)]*2)将项目分组. dict constructor可以直接采用这种对的迭代

>>> L = ['name1','value1','name2','value2','name3','value3']
>>> dict(zip(*[iter(L)]*2))
{'name1': 'value1','name2': 'value2','name3': 'value3'}

我不确定你的意思是什么更简单(更容易理解?).很难猜测你认为更简单,因为我不知道你在什么级别.这是一种不使用iter或zip的方式.如果你还不知道enumerate到底是什么,你应该查阅它.

>>> d = {}
>>> for i,item in enumerate(L):
...     if i % 2 == 0:
...         key = item
...     else:
...         d[key] = item
... 
>>> d
{'name1': 'value1','name3': 'value3'}

今天关于有没有一种快速的方法来在Python中生成字母的字典?有没有一种快速的方法来在python中生成字母的字典的讲解已经结束,谢谢您的阅读,如果想了解更多关于python中有没有一种快速的方法可以将字符串'1/100'转换为float 0.01?、python中生成字典、Python,成对的“距离”,需要一种快速的方法来实现、在Python中从列表生成字典的相关知识,请在本站搜索。

本文标签: