【问题标题】:Python convert set string to setPython将集合字符串转换为集合
【发布时间】:2021-08-05 10:06:48
【问题描述】:

我有一个看起来像这样的字符串

{'dir1/dir2/k8s-dag-model.py', 'dir1/dir2/[updated]airflow-issue.txt', 'dir1/dir2/1.log', 'dir1/dir2/cloud_formation.py', 'dir1/dir2/example_sftp_to_s3.py', 'dir1/dir2/catalog_sales.csv', 'dir1/dir2/dep-dremio0.sh', 'dir1/dir2/store_sales (1).csv', 'dir1/dir2/example_datasync_1.py', 'dir1/dir2/spark-svc.yaml'}

我想把它转换成设置我该怎么做?

使用 set(a.split(",")) 将其转换为

{" 'dir1/dir2/spark-svc.yaml'}", " 'dir1/dir2/store_sales (1).csv'", " 'dir1/dir2/[updated]airflow-issue.txt'", " 'dir1/dir2/dep-dremio0.sh'", " 'dir1/dir2/example_sftp_to_s3.py'", " 'dir1/dir2/catalog_sales.csv'", " 'dir1/dir2/cloud_formation.py'", " 'dir1/dir2/1.log'", "{'dir1/dir2/k8s-dag-model.py'", " 'dir1/dir2/example_datasync_1.py'"}

这里我必须删除 ' 和 {,} 。有没有标准的方法。

【问题讨论】:

  • ast.literal_eval(string),别忘了import ast
  • 你的输入已经是一组,一组字符串...

标签: python python-3.x string set


【解决方案1】:

您可以使用literal_eval 将字符串转换为集合/列表

import ast
x = "{'dir1/dir2/k8s-dag-model.py', 'dir1/dir2/[updated]airflow-issue.txt', 'dir1/dir2/1.log', 'dir1/dir2/cloud_formation.py', 'dir1/dir2/example_sftp_to_s3.py', 'dir1/dir2/catalog_sales.csv', 'dir1/dir2/dep-dremio0.sh', 'dir1/dir2/store_sales (1).csv', 'dir1/dir2/example_datasync_1.py', 'dir1/dir2/spark-svc.yaml'}"
y = ast.literal_eval(x)

print(y)

由于同样适用于列表也适用于列表的类似答案:https://stackoverflow.com/a/1894296/5236575

文档:https://docs.python.org/3/library/ast.html#ast.literal_eval

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    • 2020-11-30
    • 1970-01-01
    • 2013-12-16
    • 1970-01-01
    相关资源
    最近更新 更多