2013-03-28 1 views
1

Реальный простой вопрос. Я пытаюсь сделать это в Python:для x = str (y) в диапазоне (0,5) .... в python?

for x = str(y) in range(0,5): 

так, что у будет держать целое число, и х будет содержать строковое представление указанного целого числа. Я понимаю, что могу сделать 2 строки довольно легко - просто хочу ярлык.

Кроме того, мне любопытно, что именно я спрашиваю. Я уверен, что на протяжении всего форума было получено огромное количество ответов, но я понятия не имею, что искать, чтобы найти его.

+0

Хотите ли вы иметь возможность обращаться к «x» и «y» в вашем теле цикла? –

ответ

4

Вы ищете:

for x in (str(y) for y in range(0, 5)): 

Это не приходит с погона экземпляра str списка (хотя и с 5 элементов это вряд ли проблема). Однако, когда я сталкиваюсь с этим, я обычно использую str(y) внутри тела цикла.

+3

Нет, это не связывает 'y' в теле цикла. –

+0

Хотя, если вы действительно хотите избежать создания списка, вам следует использовать 'xrange'. –

2

Вы можете использовать список понимание для достижения этой цели:

str_list = ['%s'%(x) for x in range(0, 5)] 
4

Самых простой способ состоит в использовании функции map():

for y in map(str, range(0, 5)): 
    # ... 

map() функция принимает итерацию и передает каждый эль через первый арг, который является вызываемым.

+0

А, мне это гораздо лучше! –

+1

Но это не дает вам доступа к 'int'. –

+0

Не осознал, что это требование, но да, вы правы, это не так. – FatalError

1

Скорее всего, вы хотите найти List Comprehensions.

[(str(y),y) for y in range(0,5)] 

Это даст вам кортежей строк и целых чисел в виде списка, а затем перебрать этот список, как и любой другой

0

Ваш вопрос неясен, так как она опирается на кусок кода, который Безразлично» фактически компилируются.

for x,y in ((str(z), z) for z in range(0, 5)): 
    print x, y 

выше конструкция будет связываться x и y к str и int, соответственно, для каждой итерации цикла. Выходной сигнал:

0 0 
1 1 
2 2 
3 3 
4 4 
+1

На самом деле, если вы читаете непосредственно под куском кода, который не будет компилироваться, я опишу на английском языке то, что я пытаюсь выполнить с указанным кодом. Если бы мой код был скомпилирован, у меня не возникло бы вопроса. также, это бесполезно, как вы не упомянули, как я мог бы сделать это яснее. Я специально сказал в своем посте, что не знаю, что я спрашиваю: / – user891876

Смежные вопросы