【问题标题】:How can i append Variable name (already created) to list?如何将变量名称(已创建)附加到列表中?
【发布时间】:2018-08-09 04:10:27
【问题描述】:

我已经浏览了堆栈中的几乎所有答案,但没有找到答案.. 我正在制作程序来制作sql插入查询.. 所以我有:

a="Aadi Aarav Aarnav Aarush Aayush Abdul Abeer Abhimanyu Abhiramnew Aditya Advaith Advay Advik Agastya Akshay Amol Anay Anirudhnew Anmol Ansh ArinArjun Arnav Aryan Atharv Avi Ayaan Ayush Ayushman Azaan Azad Daksh Darsh Dev Dev Devansh Dhruv Farhan Gautam Harsh Harshil Hredhaan Isaac IshaanJainew Jason Kabir Kalpit Karan Kiaan Krish Krishna Laksh LakshayManannew Mohammed Nachiket Naksh Nakul Neel Om Parth Pranav PraneelPranit Pratyush Rachit Raghav Ranbir Ranveer Rayaan Rehaannew Reyansh Rishi Rohan Ronith Rudranew Rushil Ryan Sai Saksham Samaksh SamarSamarth Samesh Sarthak Sathviknew Shaurya Shivansh Siddharth Tejas Vedant Veer Viaannew Vihaan Viraj Vivaan Yash Yug Zayan"
name=a.split(' ')
location="Goregaon dadar andheri vileparle santacruz london usa newYork Malad Mulund VAshi Newzealand ".split(' ')
grade="A B C D".split(' ')
query=[]
def generate(id):
    global query
    if id==1:
        query.append('[choice(name)]')
    elif id==2:
        query.append(',randint(35,99)')
    elif id==3:
        query.append(',choice(location)')
    elif id==4:
        query.append(',randint(25000,90000)')
    elif id==5:
        query.append(',choice(grade)')
    elif id==0:
        done()


def done():
    for i in range(5):
         print((query))
        #Result.insert(END,)

输出是::

['[choice(name)]', ',randint(35,99)', ',choice(location)', ',choice(location)', ',randint(25000,90000)']
['[choice(name)]', ',randint(35,99)', ',choice(location)', ',choice(location)', ',randint(25000,90000)']
['[choice(name)]', ',randint(35,99)', ',choice(location)', ',choice(location)', ',randint(25000,90000)']
['[choice(name)]', ',randint(35,99)', ',choice(location)', ',choice(location)', ',randint(25000,90000)']
['[choice(name)]', ',randint(35,99)', ',choice(location)', ',choice(location)', ',randint(25000,90000)']

但我想要输出的是那个变量的值,比如生成的随机名称我怎么能

编辑1:

伙计们,我想要的输出是这样的..

insert into student values (101, 'varun', 62, 'B', 'vashi') ;
insert into student values (102, 'nana', 46, 'C', 'vashi') ;
insert into student values (103, 'varun', 56, 'A', 'vashi') ;
insert into student values (104, 'rajkumar', 81, 'D', 'vashi') ;
insert into student values (105, 'varun', 73, 'A', 'malad') ;
insert into student values (106, 'rajkumar', 49, 'A', 'vashi') ;
insert into student values (107, 'rajkumar', 37, 'D', 'malad') ;
insert into student values (108, 'deepika', 30, 'C', 'vashi') ;
insert into student values (109, 'varun', 37, 'D', 'goregaon') ;

我有一个 gui 程序 像这样..enter image description here

所以变量的数量不是固定的/.. 当用户单击按钮时,它会列出变量.. 在列表中 然后我想迭代这个.. 希望你能解决我的问题,,

【问题讨论】:

  • 你能展示一下你实际想要的输出应该是什么样子吗?
  • query.append('[choice(name)]') 附加文字字符串'[choice(name)]',因为这就是你告诉它做的事情。如果要从列表中随机选择一项,请使用random.choice(name)
  • 我想要的输出是插入学生值 (101, 'varun', 62, 'B', 'vashi') ;插入学生值 (102, 'nana', 46, 'C', 'vashi') ;插入学生值 (103, 'varun', 56, 'A', 'vashi') ;插入学生值 (104, 'rajkumar', 81, 'D', 'vashi') ;插入学生值 (105, 'varun', 73, 'A', 'malad') ;插入学生值 (106, 'rajkumar', 49, 'A', 'vashi') ;插入学生值 (107, 'rajkumar', 37, 'D', 'malad') ;插入学生值 (108, 'deepika', 30, 'C', 'vashi') ;插入学生值(109,'varun',37,'D','goregaon')
  • 检查我编辑的问题
  • 我看不出你怎么可能从你的代码之类的东西中得到那个输出。 randint(35, 99)randint(25000,90000) 或您的任何其他值都不会给您从 101 开始的序列号。我看不出您将如何通过选择一个位置和一个名称来获得两个位置.而且我不知道如果你甚至不知道 Python 会如何猜测正确的输出顺序。

标签: python string python-3.x


【解决方案1】:

如果你想要一个表达式的值,就用这个表达式;不要用引号引起来:

query.append([choice(name)])
# ...
query.append(randint(35, 99))
# etc.

我不确定您要对那里的逗号做什么。如果你真的想要一个值的字符串表示形式列表,前面有逗号,你可以使用字符串格式:

query.append(f',{randint(35, 99)}')

这可能看起来与您正在做的事情相似,但有两个主要区别。

首先,字符串前的f 前缀意味着这是一个字符串格式化表达式(又名f-string),其中{…} 中的位被评估。

其次,randint(35, 99) 表达式是 {…} 中的这些位之一,因此它被评估为一个值,然后将其格式化为字符串并插入到模板中。

因此,虽然您原始代码中的 randint(35, 99) 表示文字字符 ran 等,但 f 字符串中的 {randint(35, 99)} 取决于您从调用 @ 中得到什么987654332@——例如,它可能最终表示字符 42

但是,如果您不想在值中使用逗号,那么所有这些都过于复杂了;正如我在顶部所说的那样,只需附加值本身即可。

【讨论】:

    【解决方案2】:

    和其他人一样,我不完全确定您想在这里实现什么,但我会尽力而为。看起来您正在创建一个数据结构来存储有关学生的信息。有两种更好的方法可以做到这一点。使用字典或对象。我将通过对象方法。

    您想创建一个学生类来包含您的数据。

    class Student:
        def ___init___(self, name, letter_grade, score, location):
            self.name = name
            self.letter_grade = letter_grade
            self.score = score
            self.location = location
    

    使用此数据结构,您可以将您的学生存储在一个列表中,并调用有关他们的信息。这是一个例子。

    class Student:
        def ___init___(self, name, letter_grade, score, location):
            self.name = name
            self.letter_grade = letter_grade
            self.score = score
            self.location = location
    
    students = []
    students.append(Student("varun", "A", 67, "vashi")
    

    这将在学生列表中存储学生的姓名、成绩和位置。要返回有关它们的信息,您需要专门调用它。

    print(students[0].name)
    

    将返回“varun”

    因此,如果您想一次调用有关学生的所有信息,您可以执行类似的操作

    for student in students:
        print("insert into student values: ", student.name, student.letter_grade, student.score, student.location)
    

    【讨论】:

    • 谢谢你,你的权利......我。为学生数据制作数据结构,实际上,如果您检查问题,您可以看到有图像文件,如果用户选择名称,则图像有按钮,那么应该添加随机名称,但我想要 n 个数据,所以我正在创建一个列表,其中我有一些变量,如名称、数字等,这些变量是用户从图像中的 GUI 程序添加的,所以我想将该列表 n 次执行,以便创建许多 SQL 查询......是的,我想要一个 SQL 查询...... ...生成器只是一个简单的插入值的....等等..所以..我希望你明白它
    猜你喜欢
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 2022-01-20
    • 2021-04-07
    相关资源
    最近更新 更多