关于有没有一种快速的方法来在Python中生成字母的字典?和有没有一种快速的方法来在python中生成字母的字典的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于python中有没有一种快速
关于有没有一种快速的方法来在Python中生成字母的字典?和有没有一种快速的方法来在python中生成字母的字典的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于python中有没有一种快速的方法可以将字符串'1/100'转换为float 0.01?、python中生成字典、Python,成对的“距离”,需要一种快速的方法来实现、在Python中从列表生成字典等相关知识的信息别忘了在本站进行查找喔。
本文目录一览:- 有没有一种快速的方法来在Python中生成字母的字典?(有没有一种快速的方法来在python中生成字母的字典)
- python中有没有一种快速的方法可以将字符串'1/100'转换为float 0.01?
- 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??
我有这个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具有安全隐患,因为它有可能执行任意代码。
,您可以同时使用熊猫apply
和eval
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中生成字典
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建模某些系统的任务。在效率方面,我的程序遇到了以下问题的瓶颈,我将在“最小工作示例”中介绍该问题。
我处理大量由其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中从列表生成字典
['name','value','name','value']
等等.我需要将名称/值对提取到字典中:
{'name': 'value','name': 'value','name': 'value'}
有人可以详细说明最简单的方法吗?
解决方法
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中从列表生成字典的相关知识,请在本站搜索。
本文标签: