在Python中自动生成数字

时间:2017-09-28 01:17:25

标签: python

我已创建此功能: generate_seat_number(movie_index,number_of_tickets)

我需要自动生成以M为前缀的电影1以1开头的座位号,这样就像" M1-1"," M1-2"," M1 -3"依此类推,但我不确定如何做到这一点。

我会使用for循环吗?

4 个答案:

答案 0 :(得分:1)

尝试以下内容:

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

答案 1 :(得分:1)

如果您使用的是Python 3.6+,则可以使用fstrings

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

如果您有功能性痒,

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

答案 2 :(得分:1)

由于问题不是很清楚,我可以提供一些可能有用的版本,具体取决于你要回来的内容。

原子呼叫案例:

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

列表返回给来电者:

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

生成器案例:

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

希望这会有所帮助。如果您需要更多帮助,请发表评论。

答案 3 :(得分:0)

这应该有效:

number_of_seats = 10

number_of_rows = 5

row = 0

表示范围内的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
相关问题