相关疑难解决方法(0)

评估字符串中的数学表达式

stringExp = "2^4"
intVal = int(stringExp)      # Expected value: 16
Run Code Online (Sandbox Code Playgroud)

这将返回以下错误:

Traceback (most recent call last):  
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int()
with base 10: '2^4'
Run Code Online (Sandbox Code Playgroud)

我知道eval可以解决这个问题,但是不是有更好的 - 更重要的 - 更安全的方法来评估存储在字符串中的数学表达式吗?

python math

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

如何使用带引号的逗号分隔逗号分隔的键值对

我知道有许多关于解析逗号分隔值的其他帖子,但我找不到分割键值对并处理引用逗号的帖子.

我有这样的字符串:

age=12,name=bob,hobbies="games,reading",phrase="I'm cool!"
Run Code Online (Sandbox Code Playgroud)

我希望得到这个:

{
  'age': '12',
  'name': 'bob',
  'hobbies': 'games,reading',
  'phrase': "I'm cool!",
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用shlex这样的:

lexer = shlex.shlex('''age=12,name=bob,hobbies="games,reading",phrase="I'm cool!"''')
lexer.whitespace_split = True
lexer.whitespace = ','
props = dict(pair.split('=', 1) for pair in lexer)
Run Code Online (Sandbox Code Playgroud)

麻烦的是shlexhobbies条目分成两个标记,即hobbies="gamesreading".有没有办法让双引号考虑在内?或者我可以使用另一个模块吗?

编辑:修正了拼写错误 whitespace_split

编辑2:我不喜欢使用shlex.正则表达式也很好,但我不知道如何处理匹配的引号.

python parsing

6
推荐指数
2
解决办法
3838
查看次数

将逗号分隔的键值对字符串转换为字典

我需要将逗号分隔的字符串与由冒号分隔的键值对转换为字典,其中值应该是浮点数.我能够做到这一点来得到一个字典:

>>> s = 'us:0.9,can:1.2,mex:0.45'
>>> dict(x.split(':') for x in s.split(','))
Run Code Online (Sandbox Code Playgroud)

这导致:

{'us': '0.9', 'can': '1.2', 'mex': '0.45'}
Run Code Online (Sandbox Code Playgroud)

但不知道如何强制该值不是一个字符串,即我期待这个:

{'us': 0.9, 'can': 1.2, 'mex': 0.45}
Run Code Online (Sandbox Code Playgroud)

如何强制值浮动?

谢谢!

python dictionary python-3.x

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

如何在python 3中将字符串转换为字典

从字符串开始:

S='a=65 b=66 c=67'
Run Code Online (Sandbox Code Playgroud)

你会如何创建一个类似于dict的输出 {'a':'65','b':'66','c':'67'}

尝试:

S='a=65 b=66 c=67'
L=s.split(' ')
D=dict()
A=''
i=0
While i<Len(L):
    A=L[i].split('=')
    D[a[i]]=a[i+1]
    i+2

print (D)
Run Code Online (Sandbox Code Playgroud)

第8行indexerror列表索引超出范围时出错

python dictionary python-3.x

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

标签 统计

python ×4

dictionary ×2

python-3.x ×2

math ×1

parsing ×1