У меня есть список с подсписками в нем. Я хочу напечатать все подсписки с длиной, равной 3.
Я делаю следующее в Python:
for x in values[:]:
if len(x) == 3:
print(x)
values
это оригинальный список. Печатает ли приведенный выше код каждый подсписок длиной 3 для каждого значения x
? Я хочу отображать списки, где length == 3
только один раз.
Проблема решена. Проблема в редакторе Eclipse. Я не понимаю причину, но при запуске цикла отображается только половина моего списка.
Есть ли какие-либо настройки, которые я должен изменить в Eclipse?
print values
и показать результат здесь? редактировать: или просто проверить, что это не пусто.Ответы:
Попробуй это,
x in mylist
лучше и читабельнее, чемx in mylist[:]
и вашlen(x)
должен быть равен3
.или если вам нужно больше питонического использования списочных пониманий
источник
Вы можете также использовать
for x in values
вместоfor x in values[:]
; последний делает ненужную копию. Кроме того, конечно, этот код проверяет длину 2, а не 3 ...Код печатает только один элемент на значение
x
- иx
выполняет итерацию по элементамvalues
, которые являются подсписками. Таким образом, он будет печатать каждый список только один раз.источник
values
.Вот решение, которое я искал. Если вы хотите создать List2, который содержит разницу числовых элементов в List1.
Обратите внимание, что while
len(list1)
равно 11 (elements),len(list2)
будет только 10 элементов, потому что мы начинаем цикл for с элемента с индексом 1 в list1, а не с элемента с индексом 0 в list1источник
Сделайте это вместо этого:
источник