【问题标题】:how to make list of cars into string?如何将汽车列表变成字符串?
【发布时间】:2023-01-05 19:52:17
【问题描述】:

请帮助这个功能。

def car_list_as_string(cars: list) -> str:
    """
    Create a list of cars.
    The order of the elements in the string is the same as in the list.

    [['Audi', ['A4']], ['Skoda', ['Superb']]] =>
    "Audi A4,Skoda Superb"
    """

我试过了,但还没有完成……卡住了。

for car in cars:
    print(car)
    cars2 = ''.join(str(car) for car in cars)
    print(cars2)
    one_car = str(car[0])
    print(one_car)
    one_model = str(car[1])
    print(one_model)

输入是:[['Audi', ['A4']], ['Skoda', ['Superb']]] 输出应该是:“Audi A4,Skoda Superb”

【问题讨论】:

  • 首先将列表转换为字典可能更有意义,键是品牌,值是模型列表。我认为这让查看和思考数据变得更容易。在我看来,目前的结构不太明智。
  • 每个制造商总是只有一种型号吗?或者可以有类似['Skoda', ['Superb', 'Octavia']] 的东西吗?
  • @9769953 假设给定任务,转换是多余的,不会使实现更容易。

标签: python


【解决方案1】:

尝试这样的事情,这是将您的汽车列表变成字符串的一种方法

def car_list_as_string(cars: list) -> str:
    car_names = []
    for car in cars:
        car_names.append(f"{car[0]} {car[1][0]}")
    return ", ".join(car_names)

【讨论】:

    【解决方案2】:

    对于可读性差的一行,这可以工作:

    ", ".join(f"{brand} {model}" for brand, models in dict(cars).items() for model in models)
    

    【讨论】:

      【解决方案3】:
      • 使用for 循环一次遍历品牌和型号
      • 构造全名并将它们附加到list
      • 将列表连接成一个字符串
      def car_list_as_string(cars: list) -> str:
          car_names = []
          for make, models in cars:
              car_names.append(' '.join([make, models[0]])
          return ", ".join(car_names)
      

      【讨论】:

      • 您也可以执行类似 for make, (model,) in cars: 的操作来避免索引。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-29
      • 1970-01-01
      • 2011-01-13
      • 1970-01-01
      相关资源
      最近更新 更多