gpt4 book ai didi

python - 将不同类型的对象连接成一个字符串 (Python)

转载 作者:行者123 更新时间:2023-11-28 19:55:39 25 4
gpt4 key购买 nike

我已经学习 Python 两个星期了我创建了一个显示您的传记数据的功能。我想知道如何把不同数据类型的对象放到一个字符串中

如您所见,数据包括字符串、一个整数和一个 bool 值。我希望能够将它们显示为单个字符串。到目前为止,我的函数只像这样单独显示它们:('1000000', 'Bob', 17, False)我希望它像这样显示:'<1000000,Bob,17,False>'

def student_data(name, age, student_number, enrolled):
age = int(age)
true = "true"
false = "false"
# check to see if user is enrolled or not.
if enrolled == true:
enrolled = True
else:
enrolled = False
data = (student_number, name, age, enrolled,)
return (data)

data = student_data("Jana", 17, "1001291657", "false")
print (data)

最佳答案

“将不同类型的对象连接成一个字符串”这个问题的简单答案是使用映射:

>>> list_of_obj=['string', 1234, 123.4, {1:'one'}]
>>> map(str, list_of_obj)
['string', '1234', '123.4', "{1: 'one'}"]

或者列表理解:

>>> [str(e) for e in list_of_obj]
['string', '1234', '123.4', "{1: 'one'}"]

在每种情况下,您都在应用内置函数 str到列表中的每个对象。

但是,我可以建议写一个类来跟踪学生:

class Student(object):
def __init__(self, name, age, number, enrolled=True):
self.name=name
self.age=age
self.number=number
self.enrolled=enrolled

然后向类中添加一个方法以按照您想要的方式对其进行格式化:

    # Note indentation to be part of the class definition of Student...
def __str__(self):
seq=(self.name, self.age, self.number, self.enrolled)
return '<{}>'.format(', '.join([str(e) for e in seq]))

然后创建一个学生:

>>> student1=Student('Bob Jones', 23, 12345, True)

那么格式就是你定义的:

>>> print student1   
<Bob Jone, 23, 12345, True>

如评论中所述,我发现重新定义 true = "true"false = "false" 并不是那么 Pythonic 只需使用 TrueFalse 直接。除了不混淆其他人(或你自己)之外,主要原因是你失去了 Python 的“真实”与“虚假”的感觉:

>>> false = "false"
>>> bool(false)
True

关于python - 将不同类型的对象连接成一个字符串 (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25838477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com