我的eval
功能有些问题.我有一个列表,例如,
list1 = [('a',1), ('b',2), ('c',3)]
Run Code Online (Sandbox Code Playgroud)
我想将元组的每个值分配给第一个元素:
for el in list1 :
eval(el[0]) = el[1]
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我有一个没有包含信息字符串的列标题的数据框。我想根据每个单元格中的子字符串选择单元格中的部分值,并将这些元素包含在列表中。我发现列出答案的示例引用了数据帧中的单个(命名)列,并且可以轻松地应用 loc/iloc 来获取数据帧的 str 属性
数据框如下所示:
0 A[3,5] A[6,7] C[3,9]
1 B[2,9] A[2,1] B[3,7]
2 B[5,6]
Run Code Online (Sandbox Code Playgroud)
从数据框中,我想提取括号中包含的所有坐标,这些坐标在列表中列为 A (作为字符串)。结果列表应该是:
[3,5, 6,7, 2,1]
Run Code Online (Sandbox Code Playgroud)
我已从 csv 读取数据并将其包含在数据框中。我尝试了两种方法:首先,构建一个具有相同维度的数据框,并在存在字母 A 的地方用 1 填充它。
其次,我试图在数据框中找到字符串“A”出现的位置,并一次性提取括号之间的部分。在这两种方法中,我都试图使用 loc/iloc 来引用数据帧的列,但得到一个AttributeError: 'DataFrame' object has no attribute 'str'
. 我的思考方式是否正确,或者是否有更有效的方式来解决我的问题?
更新:我已经能够将数据帧堆叠成一个系列,并且只剩下包含“A”的值。现在我希望根据括号之间的子字符串来隔离坐标。下面代码的最后一行产生了一个TypeError: 'Series' objects are mutable, thus they cannot be hashed
. 如何检索括号中的子字符串?
df = pd.read_csv("FILE.csv", header = None)
df = df.fillna('')
s = df.stack()
s = s[s.str.contains("A")]
s = s[s.str.find("["):s.str.rfind("]")]
Run Code Online (Sandbox Code Playgroud) 例如,
string = "['SING', 'Dance'],['Talk', 'Scream'],['Run', 'Walk']"
Run Code Online (Sandbox Code Playgroud)
如何将上面的每个列表作为新列表的元素创建一个新列表?
我试过了
string = string.split (',')
Run Code Online (Sandbox Code Playgroud)
但是它也被列表中的逗号分开,这是我不想要的.
我需要知道如何将字符串输入转换为可执行函数。例如 - 用户写入字符串 'x*Sin(x**2)' 然后编程将其作为函数,可以计算给定 x 的值,可以绘制此函数的推导等。我读过有一个模块被调用scitools.stringfunction,但据我所知,这个模块在 python-3 中是不可调用的。
任何想法如何制作?
我试图将引号括起来的列表转换为列表.他们是这样做的最佳方式.
Ex: list = "[1,2,3,4,5]"
Operation : Convert list which is string to a list
o/p: list = [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud) 我想将运算符作为列表放置,然后从列表中调用一个元素作为运算符.
如果我没有在运算符周围放置引号,那么我在列表中的逗号中会出现语法错误:
File "p22.py", line 24
cat = [+,-,*]
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
如果我确实放置引号,那么我似乎丢失了运算符的函数,如下例所示:
File "p22.py", line 30
a = (x which y)
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
这是完整的代码:
import random
def start():
print('\n________________________________________')
print('| |')
print('| Zach\'s Tutorifier! |')
print('| |')
print('| |')
print('| Instructions: |')
print('| Select the type of math you want |')
print('| to practice with: |')
print('| 1-Add 2-Subtract 3-Multiply |')
print('|--------------------------------------|')
start()
math = int(input('> ')) - 1
cat = ['+','-','*']
def problems():
which = …
Run Code Online (Sandbox Code Playgroud) 这个问题来自处理jupyter magics
,但可以用更简单的方式表达。给定一个字符串s = "the key is {d['key']}"
和一个字典d = {'key': 'val'}
,我们想解析这个字符串。
旧方法是.format()
,这会引发错误 - 它不处理字典键。
"the key is {d['key']}".format(d=d) # ERROR
Run Code Online (Sandbox Code Playgroud)
我认为唯一的方法是将字典转换为对象(在此处或此处解释)。
"the key is {d.key}".format(obj(d))
Run Code Online (Sandbox Code Playgroud)
但是Martijn很好地解释了,您可以简单地省略引号以使其正常工作:
"the key is {d[key]}".format(d=d)
Run Code Online (Sandbox Code Playgroud)
新方法仍然f'string'
以直观的 Python 方式处理字典键:
f"the key is {d['key']}"
Run Code Online (Sandbox Code Playgroud)
它还处理功能——某些东西.format
也无法处理。
f"this means {d['key'].lower()}"
Run Code Online (Sandbox Code Playgroud)
虽然我们现在知道你可以用来做.format
,但我仍然想知道最初的问题:给定s
和d
,你如何强制f'string'
解析s
?我在大括号内添加了另一个带有函数的示例,该示例.format
也无法处理并且f'string'
能够解决。
是否有一些功能.fstring()
或方法可用?Python 内部使用什么?
嗨,我有以下字符串:
s = '{'abc', 'def'}'
Run Code Online (Sandbox Code Playgroud)
我想创建一个清单
L = ['abc', 'def']
Run Code Online (Sandbox Code Playgroud)
如何最好地做到这一点?
我可以执行标准replace等操作并创建一个列表,但要记住s的长度+元素个数将发生变化。
我知道问题的标题可能不是最直观的,但我想不出更好的方法来简短地描述它,这就是我的实际意思。
我想写一些小的解析器,它会用我指定的字符串构建一个 kwargs 字典。
下面是一个例子:
string_of_kwargs = 'n=6,m=10'
graph_kwargs = {pair.split('=')[0]:pair.split('=')[1]
for pair in string_of_kwargs.split(',')}
Run Code Online (Sandbox Code Playgroud)
输出是:
{'n': '6', 'm': '10'}
Run Code Online (Sandbox Code Playgroud)
问题是在上面的代码中,我不得不使用 pair.split('=') 两次,我想知道是否有办法解决它,以防我将来不得不解压更多这样的值。
我想动态分配变量(矩阵名称)并分配一些值。
下面是我正在尝试的示例代码。预期输出为 mat1 和 mat2,分别包含值 1 和 1。
stri = "mat"
for i in range(1,2):
"_".join([stri, i])=1
Run Code Online (Sandbox Code Playgroud)