Списки и индексы дают ошибку, потому что список вне диапазона
Я получаю сообщение об ошибке, когда пытаюсь запустить свою функцию. Я знаю причину. но я ищу способ это исправить.
list2=['name','position','salary','bonus']
list3=['name','position','salary']
def funtionNew(list):
print(len(list))
po= '{} {} {} {}'.format(list[0],list[1],list[2],list[3])
print(po)
funtionNew(list3)
Так что я могу сделать это для list2
po='{}{}{}{}'..format(list[0],list[1],list[2],list[3])
и сделать это для list3
po='{}{}{}'..format(list[0],list[1],list[2])
2 ответа
Решение
Попробуйте следующее:
def funtionNew(list):
print(len(list))
string_for_formatting = '{} ' * len(list)
po = string_for_formatting.format(*list)
print(po)
Это создает строку с переменным числом {} терминов в соответствии с длиной вашего списка, а затем использует формат в списке. Звездочка *, распаковывает элементы вашего списка в качестве входных данных для функции.
Из реализации функции кажется, что вы пытаетесь объединить элементы списка с пробелами между ними, чтобы вы могли попробовать вместо этого -
po=' '.join(list)
Это не зависит от длины списка, однако вы должны убедиться, что все элементы в списке являются строками. Таким образом, вы можете сделать следующее -
po = ' '.join[str(s) for s in list]