ฉันคิดผิด (แจ้งให้เราทราบแล้วฉันจะลบคำถาม) แต่ดูเหมือนว่า python จะไม่ตอบสนอง
for n in range(6,0):
print n
ฉันลองใช้ xrange แล้วก็ไม่ได้ผลเช่นกัน ฉันจะใช้สิ่งนั้นได้อย่างไร
ฉันคิดผิด (แจ้งให้เราทราบแล้วฉันจะลบคำถาม) แต่ดูเหมือนว่า python จะไม่ตอบสนอง
for n in range(6,0):
print n
ฉันลองใช้ xrange แล้วก็ไม่ได้ผลเช่นกัน ฉันจะใช้สิ่งนั้นได้อย่างไร
for i in reversed(mat):
แม้ว่ามันอาจจะช้าลง
คำตอบ:
for n in range(6,0,-1):
print n
# prints [6, 5, 4, 3, 2, 1]
range(5,-1,-1)
ต้องการจริง แม้ว่าเขาอาจจะคิดได้จากการลองผิดลองถูก
นี่มันสายไปแล้ว แต่ฉันแค่อยากจะเพิ่มว่ามีวิธีที่หรูหรากว่านี้คือการใช้ไฟล์ reversed
for i in reversed(range(10)):
print i
ให้:
4
3
2
1
0
reversed(range)
ฟรีเนื่องจากการrange_reverse
เพิ่มประสิทธิภาพที่ดีใน CPython ฉันได้ทำการเปรียบเทียบอย่างรวดเร็วและไม่พบความแตกต่างของต้นทุนที่มีนัยสำคัญระหว่างstep=-1
และreversed()
ใน Python 2.7 และ 3.3 นอกจากนี้ยังโปรดทราบว่าสำนวนนี้ใช้ใน heapq
xrange
ในการทดสอบ Python 2.7 ของคุณreverse
จะทำงานในรายการปกติที่สร้างขึ้นแล้วไม่ใช่ในวัตถุช่วง คุณกำลังบอกว่ารายการใด ๆสามารถย้อนกลับได้อย่างมีประสิทธิภาพหรือเป็นเพียงrange/xrange
วัตถุ? (รหัสฮีพที่คุณเชื่อมโยงเกี่ยวข้องกับวัตถุช่วง Python 3)
reversed(range(10))
ไม่อาจเอาท์พุทผ่าน4
0
บางทีคุณอาจหมายถึงrange(5)
?
for n in range(6,0,-1)
สิ่งนี้จะให้คุณ 6,5,4,3,2,1
ส่วน
for n in reversed(range(0,6))
จะให้คุณ 5,4,3,2,1,0
for n in range(6,0,-1):
print n
>>> range(6, 0, -1)
[6, 5, 4, 3, 2, 1]
0 คือค่าตามเงื่อนไขเมื่อเงื่อนไขนี้เป็นจริงลูปจะดำเนินการต่อไป 10 คือค่าเริ่มต้น 1 คือตัวปรับแต่งที่อาจลดลงอย่างง่าย
for number in reversed(range(0,10,1)):
print number;
สายไปงานปาร์ตี้ แต่สำหรับใครก็ตามที่ได้รับมอบหมายให้สร้างของตัวเองหรือต้องการดูว่าจะทำงานอย่างไรต่อไปนี้เป็นฟังก์ชันที่มีโบนัสเพิ่มเติมในการจัดเรียงค่าเริ่มต้นใหม่ตามการเพิ่มที่ต้องการ:
def RANGE(start, stop=None, increment=1):
if stop is None:
stop = start
start = 1
value_list = sorted([start, stop])
if increment == 0:
print('Error! Please enter nonzero increment value!')
else:
value_list = sorted([start, stop])
if increment < 0:
start = value_list[1]
stop = value_list[0]
while start >= stop:
worker = start
start += increment
yield worker
else:
start = value_list[0]
stop = value_list[1]
while start < stop:
worker = start
start += increment
yield worker
การเพิ่มเชิงลบ:
for i in RANGE(1, 10, -1):
print(i)
หรือเมื่อย้อนกลับจุดเริ่มต้น - หยุด:
for i in RANGE(10, 1, -1):
print(i)
เอาท์พุต:
10
9
8
7
6
5
4
3
2
1
เพิ่มขึ้นปกติ:
for i in RANGE(1, 10):
print(i)
เอาท์พุต:
1
2
3
4
5
6
7
8
9
เพิ่มขึ้นเป็นศูนย์:
for i in RANGE(1, 10, 0):
print(i)
เอาท์พุต:
'Error! Please enter nonzero increment value!'
สำหรับ python3 ที่-1
ระบุค่าที่จะลดลงในแต่ละขั้นตอน
for n in range(6,0,-1):
print(n)