Использование функции len() со значениями в Юникоде

#python

#python

Вопрос:

Здесь новичок в Python. У меня есть файл Excel с 5000 строками и 1 столбцом. Я импортирую их в Python и затем буду использовать операторы if … else для проверки конкретных условий.

Итак, мои данные выглядят следующим образом: (в Excel)

 Kansas
Colorado
Missouri
Iowa
New York
New Mexico
mycar
car
thisisacar
...
  

Вот код для ее импорта в Python и условный
инструкции.

 import xlrd
wb = xlrd.open_workbook("file.xls")

wb.sheet_names()
sh = wb.sheet_by_index(0)

for item in sh.col(0):
    value = unicode(item.value)
    if value.startswith("car"):
        print value 
        if len(value) == 3:
            print value
  

Идея состоит в том, чтобы напечатать все с помощью «car», а затем распечатать
значение, когда оно имеет длину всего 3.

if len(value) == 3 Похоже, что это не работает. помогите!

Комментарии:

1. И так, что же в нем содержится?

Ответ №1:

len(value) должно работать нормально — я предполагаю, что, вероятно, есть какой-то завершающий пробел или что-то подобное, поэтому попробуйте использовать len(value.strip()) и посмотрите, решит ли это вашу проблему 🙂

Ответ №2:

Ваш код не работает для mycar и thisisacar .

Может быть, вам стоит попробовать что-то вроде:

 x = (value.strip() for value in sh.col(0) if 'car' in value)
for i in x:
    print i
    if len(i) == 3:
        print i