相关疑难解决方法(0)

如何评估包含相等符号的字符串?

我的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)

我怎样才能做到这一点?

python string eval equals-operator

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

选择 DataFrame 中的元素

我有一个没有包含信息字符串的列标题的数据框。我想根据每个单元格中的子字符串选择单元格中的部分值,并将这些元素包含在列表中。我发现列出答案的示例引用了数据帧中的单个(命名)列,并且可以轻松地应用 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)

dataframe python-3.x pandas

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

如何分隔逗号分隔的列表

例如,

string = "['SING', 'Dance'],['Talk', 'Scream'],['Run', 'Walk']"
Run Code Online (Sandbox Code Playgroud)

如何将上面的每个列表作为新列表的元素创建一个新列表?

我试过了

string = string.split (',')
Run Code Online (Sandbox Code Playgroud)

但是它也被列表中的逗号分开,这是我不想要的.

python split list comma

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

获取数学函数作为用户的输入

我需要知道如何将字符串输入转换为可执行函数。例如 - 用户写入字符串 'x*Sin(x**2)' 然后编程将其作为函数,可以计算给定 x 的值,可以绘制此函数的推导等。我读过有一个模块被调用scitools.stringfunction,但据我所知,这个模块在 python-3 中是不可调用的。

任何想法如何制作?

python input function python-3.x

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

将字符串封闭列表转换为列表

我试图将引号括起来的列表转换为列表.他们是这样做的最佳方式.

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)

python string list

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

在Python 3中将运算符放在列表中

我想将运算符作为列表放置,然后从列表中调用一个元素作为运算符.

如果我没有在运算符周围放置引号,那么我在列表中的逗号中会出现语法错误:

  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)

python python-3.x

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

在变量中的python字符串上触发f字符串解析

这个问题来自处理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,但我仍然想知道最初的问题:给定sd,你如何强制f'string'解析s?我在大括号内添加了另一个带有函数的示例,该示例.format也无法处理并且f'string'能够解决。

是否有一些功能.fstring()或方法可用?Python 内部使用什么?

python string string-formatting python-3.x f-string

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

如何创建一个列表,该列表由Python字符串中的字符包含的元素组成?

嗨,我有以下字符串:

s = '{'abc', 'def'}'
Run Code Online (Sandbox Code Playgroud)

我想创建一个清单

L = ['abc', 'def']
Run Code Online (Sandbox Code Playgroud)

如何最好地做到这一点?

我可以执行标准replace等操作并创建一个列表,但要记住s的长度+元素个数将发生变化。

python python-3.x

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

有没有办法在 for 循环中解压 split() 的结果?

我知道问题的标题可能不是最直观的,但我想不出更好的方法来简短地描述它,这就是我的实际意思。

我想写一些小的解析器,它会用我指定的字符串构建一个 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('=') 两次,我想知道是否有办法解决它,以防我将来不得不解压更多这样的值。

python dictionary loops unpack keyword-argument

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

如何在python中动态创建变量名并赋值?

我想动态分配变量(矩阵名称)并分配一些值。

下面是我正在尝试的示例代码。预期输出为 mat1 和 mat2,分别包含值 1 和 1。

stri = "mat"

for i in range(1,2):  
     "_".join([stri, i])=1
Run Code Online (Sandbox Code Playgroud)

python

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