简体   繁体   English

在 Python 中自动生成数字

[英]Auto-generate numbers in Python

I've created this function: generate_seat_number(movie_index,number_of_tickets)我创建了这个函数: generate_seat_number(movie_index,number_of_tickets)

and I need to auto generate seat numbers that start with 1 for movie 1 prefixed by M so like "M1-1","M1-2","M1-3"and so on but I'm not exactly sure how to do this.我需要为电影 1 自动生成以 1 开头的座位号,以 M 为前缀,例如“M1-1”、“M1-2”、“M1-3”等,但我不确定该怎么做这个。

would I use a for loop?我会使用for循环吗?

只需尝试以下操作:

seat_numbers = ["M1-"+ str(i) for i in range(1, 101)]

if you're using Python 3.6+, you can use fstrings :如果您使用的是 Python 3.6+,则可以使用fstrings

[f'M1-{i}' for i in range(1, 11)]

If you have a functional itch,如果您有功能性瘙痒,

list(map(lambda i: f'M1-{i}', range(1, 11)))

Since the question isn't super clear, I can give a few versions that might work, depending on what you are getting back.由于问题不是很清楚,我可以提供一些可能有效的版本,具体取决于您返回的内容。

Atomic call-case:原子调用案例:

def generate_seat_number(idx, num):
  return "M{}-{}".format(idx, i)

List return to caller:返回给调用者的列表:

def generate_seat_number(idx, num):
  ret_list = []
  # 1 because humans don't start at 0
  # num+1 because range is not inclusive
  for i in range(1,num + 1):
    ret_list.append("M{}-{}".format(idx, i))
  return ret_list

Generator case:发电机案例:

def generate_seat_number(idx, num):
  for i in range(1, num+1):
    yield "M{}-{}".format(idx, i)

Hope this helps.希望这可以帮助。 Leave a comment if you need more help.如果您需要更多帮助,请发表评论。

This should work :这应该工作:

number_of_seats = 10 number_of_seats = 10

number_of_rows = 5 number_of_rows = 5

row = 0行 = 0

for x in range (0, number_of_rows):对于范围内的 x (0, number_of_rows):

row += 1

seats_left = number_of_seats - 1

for x in range (0, number_of_seats):

    print("M" + str(row) + "-" + str(number_of_seats - seats_left))

    seats_left -= 1

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM