我喜欢在Python脚本中转换以下字符串:
mystring='(5,650),(235,650),(465,650),(695,650)'
Run Code Online (Sandbox Code Playgroud)
到元组列表
mytuple=[(5,650),(235,650),(465,650),(695,650)]
Run Code Online (Sandbox Code Playgroud)
这样
print mytuple[0]
得到:
(5,650)
Run Code Online (Sandbox Code Playgroud) 我有一本字典,其中包含多个熊猫掩码作为特定数据帧的字符串,但我找不到使用这些掩码的方法。
这是一个简短的可重现示例:
df = pd.DataFrame({'age' : [10, 24, 35, 67], 'strength' : [0 , 3, 9, 4]})
masks = {'old_strong' : "(df['age'] >18) & (df['strength'] >5)",
'young_weak' : "(df['age'] <18) & (df['strength'] <5)"}
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情:
df[masks['young_weak']]
Run Code Online (Sandbox Code Playgroud)
但由于掩码是一个字符串,我收到错误
KeyError: "(df['age'] <18) & (df['strength] <5)"
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个 rubix 立方体求解器,我想重复调用相同的边来检查它的信息。但是三维区域的位置占用了很多空间,我想把我重复使用的位置放到一个变量中,这样我就可以调用变量而不是一遍又一遍地重写位置。
这是我的 rubix 立方体的样子:
rubixCube = [
[["G","G","Y"], ["R","B","O"], ["R","R","O"]],
[["G","O","O"], ["O","Y","G"], ["R","B","B"]],
[["Y","W","Y"], ["R","O","O"], ["O","W","W"]],
[["B","B","W"], ["B","W","G"], ["G","W","R"]],
[["B","Y","R"], ["Y","R","W"], ["G","Y","B"]],
[["O","G","W"], ["B","G","R"], ["Y","Y","W"]]
]
Run Code Online (Sandbox Code Playgroud)
这是我反复调用的位置示例:
if(rubixCube[0][0][1] == "W"):
Run Code Online (Sandbox Code Playgroud)
我可以写一些类似这样的东西吗:
position = [0][0][1]
if(rubixCube[position] == "W"):
Run Code Online (Sandbox Code Playgroud) 我通过导入集合创建了一个python Ordered Dictionary并将其存储在名为'filename.txt'的文件中.文件内容看起来像
OrderedDict([(7, 0), (6, 1), (5, 2), (4, 3)])
Run Code Online (Sandbox Code Playgroud)
我需要从另一个程序中使用这个OrderedDict.我这样做
myfile = open('filename.txt','r')
mydict = myfile.read()
Run Code Online (Sandbox Code Playgroud)
我需要获得类型的'mydict'
<class 'collections.OrderedDict'>
Run Code Online (Sandbox Code Playgroud)
但在这里,它出现了'str'类型.
有没有办法在python中将字符串类型转换为OrderedDict类型?使用python 2.7
我试图将字符串转换为具有dict
函数的字典,就像这样
import json
p = "{'id':'12589456'}"
d = dict(p)
print d['id']
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误
ValueError: dictionary update sequence element #0 has length 1; 2 is required
Run Code Online (Sandbox Code Playgroud)
为什么会失败?我怎样才能解决这个问题?
我有三个功能:
def function_1(arg_1, arg_1, arg_1, arg_1):
return sol_1
def function_2(arg_1, arg_2, arg_3, arg_4):
return sol_2
def function_3(arg_1, arg_2, arg_3, arg_4):
return sol_3
Run Code Online (Sandbox Code Playgroud)
我想用字符串调用它们:
myString = 'function_2'
eval(myString)
Run Code Online (Sandbox Code Playgroud)
但是我无法将参数传递给要传递给自定义定义的 eval 函数function_2
,因为它们不是同质的 ( np.array
, float
, float
, int
)。
我想知道Python中是否有一个函数可以从用户那里获取格式化scanf()
输入,类似于在'C'中使用和格式化字符串(例如%d
,%lf
等)从用户那里获取输入。
scanf()
返回 a的假设示例list
:
input_date_list = scanf("%d-%d-%d")
# User enters "1969-04-20"
input_time_list = scanf("%d:%d")
# User enters "04:20"
print(input_date_list, input_time_list)
# Output is "[1969, 4, 20] [4, 20]"
Run Code Online (Sandbox Code Playgroud) 具体来说,我正在说一个用户输入的字,相当于一个数字(用户不知道).
我的代码:
animal = raw_input( > ) #and a user inputs cat
dog = 30
cat = 10
frog = 5
print 10 + int(animal) #with the hope that will output 20
Run Code Online (Sandbox Code Playgroud)
不知道怎么做..
如何将str的表示形式list
转换为dictionary
?
a = '[100:0.345,123:0.34,145:0.86]'
Run Code Online (Sandbox Code Playgroud)
预期产量:
{100:0.345,123:0.34,145:0.86}
Run Code Online (Sandbox Code Playgroud)
首先尝试使用将字符串转换为列表ast.literal_eval
.但它显示错误: invalid syntax
我发现了许多不同的解决方案,可以针对单个案例执行此操作,但不适用于 pandas 系列。我想改变这个
col1
0 [{'a':2, 'b':3, 'c':9}]
1 [{'a':1, 'b':0, 'c':8}]
2 [{'a':4, 'b': 5, 'c':12}]
3 [{'a':3, 'b':6, 'c':11}]
Run Code Online (Sandbox Code Playgroud)
进入
col1
0 {'a':2, 'b':3, 'c':9}
1 {'a':1, 'b':0, 'c':8}
2 {'a':4, 'b': 5, 'c':12}
3 {'a':3, 'b':6, 'c':11}
Run Code Online (Sandbox Code Playgroud)
谢谢
python ×10
dictionary ×2
pandas ×2
python-2.7 ×2
string ×2
configparser ×1
eval ×1
list ×1
parsing ×1