ฉันมีสตริงของแบบฟอร์มนี้
s='arbit'
string='%s hello world %s hello world %s' %(s,s,s)
% s ทั้งหมดในสตริงมีค่าเท่ากัน (เช่น s) มีวิธีที่ดีกว่าในการเขียนสิ่งนี้หรือไม่? (แทนที่จะออกรายการสามครั้ง)
%ตัวดำเนินการสตริงนี้จะ "เลิกใช้งาน Python 3.1 และนำออกในภายหลัง" docs.python.org/release/3.0.1/whatsnew/…ตอนนี้ฉันสงสัยว่าวิธีใดเป็นวิธีที่แนะนำมากที่สุดสำหรับทั้งความเข้ากันได้และความปลอดภัยของเวอร์ชัน
str.format()แต่ฉันต้องการใช้ ตัวอย่าง: สตริงรูปแบบอยู่query = "SELECT * FROM {named_arg}"; query.format(**kwargs)ที่ไหนqueryและkwargsเป็นพจนานุกรมที่มีคีย์ตรงกับnamed_args ในสตริงรูปแบบ
{0}, {1}, {2}และอื่น ๆ ที่สอดคล้องกับดัชนี tuple 0, 1และ2ตามลำดับ นอกจากนี้ยังสามารถตั้งชื่อ args (like {named_arg}) และตั้งค่าแต่ละรายการในวิธีการจัดรูปแบบได้เช่น:'Hi {fname} {lname}!'.format(fname='John', lname='Doe')