Python如何不硬编码将变量及对应字符串转换为pandas dataframe
可以实现,不需要硬编码四个变量的名称,直接从当前作用域筛选对应变量即可,参考代码如下:
import pandas as pd # 你已定义的四个字符串变量 line1 = 'be nice' line2 = '"best!"' line3 = 'better?' line4 = 'oh no\nbear spotted' # 筛选所有名称以line开头的局部变量,按名称排序保证line1到line4的顺序 line_list = sorted([(var_name, var_value) for var_name, var_value in locals().items() if var_name.startswith('line')]) # 生成DataFrame df = pd.DataFrame(line_list, columns=['Line', 'String']) # 输出符合要求的Markdown表格 print(df.to_markdown(index=False))
如果要更严谨,避免匹配到其他line开头的非数字后缀变量(比如line_test),可以用正则做规则校验:
import pandas as pd import re line1 = 'be nice' line2 = '"best!"' line3 = 'better?' line4 = 'oh no\nbear spotted' # 仅匹配line+纯数字格式的变量名 line_list = sorted([(k, v) for k, v in locals().items() if re.fullmatch(r'line\d+', k)]) df = pd.DataFrame(line_list, columns=['Line', 'String']) print(df.to_markdown(index=False))
运行上述代码输出的表格完全匹配你给出的预期格式。
内容的提问来源于stack exchange,提问作者Marcus Chan
相关产品推荐
相关产品推荐

