繁体   English   中英

Python列表| 如何删除列表中的括号,引号和逗号?

[英]Python list | How to remove parenthesis,quotes and commas in my list?

从我的数据库中,我将返回一个列表以显示在我的HTML页面中,但我的列表中有这些不需要的符号。 我尝试使用split()函数,但它不会工作。 如何删除这些括号,逗号和引号。 谢谢你的帮助

输出是:

[('cenomar',), ('cedula',), ('Birth Certificate',), ('Clearance',)]

我想要:

 [cenomar, cedula, Birth Certificate, Clearance]

这是我的python函数:

 @app.route('/')
    def search():
        conn=psycopg2.connect("dbname='forms' user='postgres' password='everboy' 
       host='localhost' port='5432'")
       cur=conn.cursor()
       cur.execute("SELECT name from form")
       rows=cur.fetchall()
       print(rows)
       return render_template("form.html",rows=rows)

在此行之后: rows=cur.fetchall()添加此行

rows=[i[0] for i in rows]

一个简单的解决方案是:

输入 :[“('cenomar',)”,“('cedula',)”,“('出生证明',)”,“('清除',)”]

rows = ["('cenomar',)", "('cedula',)", "('Birth Certificate',)", "('Clearance',)"]
res = []
for r in rows:
    res.append(r[2:-3]) # this line ignores the beginning bracket and open quote and the closing bracket, comma, and close quote
print res

输出 :[“cenomar”,“cedula”,“出生证明”,“清关”]

会发生什么,你迭代你的列表,对于每个项目,你只是使用字符串操作( [n:m] ,切断了你不需要的东西,其中n是起始字符, m是结束字符,在你的情况下, 2表示从3个字符开始字符串(忽略(' ), -3 3表示在结束之前将字符串剪切为3个字符(忽略)', ))。

编辑1

我注意到你的输入可能不是一个字符串,正如我上面的回答所暗示的那样,如果你有一个元组("smth",)你可以简单地得到第一个元素。 所以答案会改为:

输入 :[('cenomar',),('cedula',),('出生证明'),('清除',)]

rows = [('cenomar',), ('cedula',), ('Birth Certificate',), ('Clearance',)]
res = []
for r in rows:
    res.append(r[0])
print res

输出 :[“cenomar”,“cedula”,“出生证明”,“清关”]

上面的实现是为了便于理解而写的,但也可以翻译成一个较短的衬里,如下所示:

rows = [i[0] for i in rows]

希望这可以帮助!

试试这个吧

l = [('cenomar',), ('cedula',), ('Birth Certificate',), ('Clearance',)]
b = []
for i in l:
    b.append(i[0])
print(b)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM