ฉันมีสตริงของแบบฟอร์มนี้
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_arg
s ในสตริงรูปแบบ
{0}
, {1}
, {2}
และอื่น ๆ ที่สอดคล้องกับดัชนี tuple 0
, 1
และ2
ตามลำดับ นอกจากนี้ยังสามารถตั้งชื่อ args (like {named_arg}
) และตั้งค่าแต่ละรายการในวิธีการจัดรูปแบบได้เช่น:'Hi {fname} {lname}!'.format(fname='John', lname='Doe')