我以列表列表的形式收集数据,并将数据写入文本文件.文本文件中的数据看起来像
[[123231,2345,888754],[223467,85645]]
Run Code Online (Sandbox Code Playgroud)
我想把它读回来并存储在我的程序列表中.但是当我read()
从文件中创建并尝试创建一个平面列表时,它将所有内容都作为一个字符串,并且解释完全改变,并且我无法查询我在阅读作为python中的正常列表列表后获得的结果.
有人可以帮我阅读文件并以与列表列表相同的格式存储吗?
谢谢!
我需要一个函数,它将python的运算符符号或关键字之一作为字符串,连同其操作数,对其进行求值,并返回结果.像这样:
>>> string_op('<=', 3, 3)
True
>>> string_op('|', 3, 5)
7
>>> string_op('and', 3, 5)
True
>>> string_op('+', 5, 7)
12
>>> string_op('-', -4)
4
Run Code Online (Sandbox Code Playgroud)
不能认为该字符串是安全的.我只对映射二元运算符感到满意,但如果能得到所有这些运算符,我会非常高兴.
import operator
def string_op(op, *args, **kwargs):
"""http://docs.python.org/2/library/operator.html"""
symbol_name_map = {
'<': 'lt',
'<=': 'le',
'==': 'eq',
'!=': 'ne',
'>=': 'ge',
'>': 'gt',
'not': 'not_',
'is': 'is_',
'is not': 'is_not',
'+': 'add', # conflict with concat
'&': 'and_', # (bitwise)
'/': 'div',
'//': 'floordiv',
'~': 'invert',
'%': 'mod',
'*': …
Run Code Online (Sandbox Code Playgroud) 我有一个 json 字符串存储在数据库中,当它被拉出并显示在模板上时,它是一个字符串。我想将其转换为字典对象,以便我可以直接访问内容。
字符串 = "{'a':1, 'b':3}"
{{ obj }} ---> 字符串 "{'a':1, 'b':3}"
{{ obj.b }} ---> 我想像对象一样访问它。
我想从Python中的两个字符串创建一个变量名,例如:
a = "column_number"
b = "_url1"
Run Code Online (Sandbox Code Playgroud)
然后能够获得"column_number_url1"
我可以使用的变量名称.
我很欣赏这一般不是一个好主意 - 有很多帖子说明为什么这是一个坏主意(例如我如何创建可变数量的变量?,创建多个变量) - 我主要希望能够做到因为这些都是在代码中的其他地方定义的变量,并且想要一种能够重新访问它们的简单方法(即,而不是创建数以千计的唯一变量,我同意字典等会更好) .
据我所知,我发现的其他帖子中的答案都是替代方法,而不是如何从两个字符串创建变量名称.
我的教授希望我创建一个函数,该函数返回字符串中的数字总和但不使用任何列表或列表方法.
操作时该功能应如下所示:
>>> sum_numbers('34 3 542 11')
590
Run Code Online (Sandbox Code Playgroud)
通常,使用列表和列表方法时,很容易创建这样的函数.但试图在不使用它们的情况下这样做是一场噩梦.
我尝试了以下代码,但它们不起作用:
>>> def sum_numbers(s):
for i in range(len(s)):
int(i)
total = s[i] + s[i]
return total
>>> sum_numbers('1 2 3')
'11'
Run Code Online (Sandbox Code Playgroud)
不是将1,2和3全部转换为整数并加在一起,而是将字符串设为'11'.换句话说,字符串中的数字仍未转换为整数.
我也试过使用一个map()
函数,但我得到了相同的结果:
>>> def sum_numbers(s):
for i in range(len(s)):
map(int, s[i])
total = s[i] + s[i]
return total
>>> sum_numbers('1 2 3')
'11'
Run Code Online (Sandbox Code Playgroud) 给定一个对象可以是类似dict或类似数组的对象的嵌套结构.在给定虚线路径作为字符串的情况下,在该对象上设置值的pythonic方法是什么?
例:
obj = [
{'a': [1, 2]},
{'b': {
'c': [3, 4],
}},
]
path = '1.b.c.0'
# operation that sets a value at the given path, e.g.
obj[path] = 5
# or
set_value(obj, path, 5)
Run Code Online (Sandbox Code Playgroud)
上面的调用/赋值应该3
用a 替换示例中的5
.
注意:路径可以包含列表索引和键.对象的每个级别可以是一个array
或一个dict
或类似的行为.
解决方案应该与npm包object-path
在javascript中的工作方式大致相同.
我想转换这个列表:
[1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
进入这个字典:
{ 1 :
{ 2 :
{ 3 :
{ 4 : 5 }}}}
Run Code Online (Sandbox Code Playgroud)
这听起来并不太复杂,但是当需要为比表面更深的键分配值时,我感到很困惑。我有一个递归函数来查找我的字典有多深,但我不知道如何告诉我的算法“在此处添加新键”。
我想转换一个字符串,例如:
s = "[2-1,2,3]"
Run Code Online (Sandbox Code Playgroud)
放入列表中,例如:
a = [1,2,3]
Run Code Online (Sandbox Code Playgroud)
我尝试过json
:
s = "[2-1,2,3]"
a = json.loads(s)
Run Code Online (Sandbox Code Playgroud)
但它无法处理2-1
。有没有一种简单的方法可以将字符串转换为任何类型的数据类型?
我有一个清单:
a = ['one', 'two']
a = str(a)
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)