Python:範囲azを印刷する方法は?


109

1.印刷: abcdefghijklmn

2.毎秒 acegikm

3. URLのインデックスに追加します{ hello.com/、hej.com/、...、hallo.com/}:hello.com/a hej.com/b ... hallo.com/n


6
「初心者」の質問でも奇妙なことに、さまざまな答えを得ることができます。タイプできるということは、「パイソン」ができることを意味するのではなく、乱雑なものに対するgnibblerの答えが本当に好きです。皆さんの答えに感謝します-物事をシンプルに保ち、特別なgnibblerに感謝します。
HHH

2
それは野生の答えではありません。2種類あります。1つはで使用さrangechr()、もう1つはの既製のリストstringです。
Lennart Regebro 2010

回答:


189
>>> import string
>>> string.ascii_lowercase[:14]
'abcdefghijklmn'
>>> string.ascii_lowercase[:14:2]
'acegikm'

URLを行うには、次のようなものを使用できます

[i + j for i, j in zip(list_of_urls, string.ascii_lowercase[:14])]

1
string.ascii_lowercaseはすでにpython 2.xで動作していると思いますので、常にascii_lowercaseを使用するようにしてください。
johk95 2017

1
@ johk95は実際にstr.lowercaseはロケールに依存しているため、そもそも最良の選択ではありませんでした。私はそれを私の答えで置き換えました
John La Rooy 2017

こんにちは、これが英語でしか利用できないのかどうか教えてもらえますか?他の言語でも同じことができますか?よろしくお願いします
Michael Schroter

47

これが宿題であると仮定します;-)-ライブラリなどを呼び出す必要はありません-次のように、chr / ordでrange()を使用すると予想されます。

for i in range(ord('a'), ord('n')+1):
    print chr(i),

残りについては、range()でもう少しプレイしてください




12

必要な値のリストを取得します

small_letters = map(chr, range(ord('a'), ord('z')+1))
big_letters = map(chr, range(ord('A'), ord('Z')+1))
digits = map(chr, range(ord('0'), ord('9')+1))

または

import string
string.letters
string.uppercase
string.digits

このソリューションでは、ASCIIテーブルを使用しますord文字からASCII値を取得し、chrその逆も同様です。

リストについて知っていることを適用する

>>> small_letters = map(chr, range(ord('a'), ord('z')+1))

>>> an = small_letters[0:(ord('n')-ord('a')+1)]
>>> print(" ".join(an))
a b c d e f g h i j k l m n

>>> print(" ".join(small_letters[0::2]))
a c e g i k m o q s u w y

>>> s = small_letters[0:(ord('n')-ord('a')+1):2]
>>> print(" ".join(s))
a c e g i k m

>>> urls = ["hello.com/", "hej.com/", "hallo.com/"]
>>> print([x + y for x, y in zip(urls, an)])
['hello.com/a', 'hej.com/b', 'hallo.com/c']

string.lettersはPython 3で削除されたようで、厳密には同じではない string.ascii_lettersのみが使用可能です
jonespm

8
import string
print list(string.ascii_lowercase)
# ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

1
これをPython 3でタプル(不変)にするには:tuple(string.ascii_lowercase)
Alex Willison

6
import string
print list(string.ascii_lowercase)
# ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

そして

for c in list(string.ascii_lowercase)[:5]:
    ...operation with the first 5 characters

4
myList = [chr(chNum) for chNum in list(range(ord('a'),ord('z')+1))]
print(myList)

出力

['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

StackOverflowへようこそ。これが質問に対する完全な回答である理由をより明確に説明してください。
Jeroen Heier

ありがとう。これをどのように構築するかが気に入っています。
hmacias

2
#1)
print " ".join(map(chr, range(ord('a'),ord('n')+1)))

#2)
print " ".join(map(chr, range(ord('a'),ord('n')+1,2)))

#3)
urls = ["hello.com/", "hej.com/", "hallo.com/"]
an = map(chr, range(ord('a'),ord('n')+1))
print [ x + y for x,y in zip(urls, an)]

2

この質問への答えは簡単です。ABCというリストを次のように作成するだけです。

ABC = ['abcdefghijklmnopqrstuvwxyz']

そして、それを参照する必要があるときはいつでも、次のようにしてください:

print ABC[0:9] #prints abcdefghij
print ABC       #prints abcdefghijklmnopqrstuvwxyz
for x in range(0,25):
    if x % 2 == 0:
        print ABC[x] #prints acegikmoqsuwy (all odd numbered letters)

また、デバイスを壊すためにこれを試してください:D

##Try this and call it AlphabetSoup.py:

ABC = ['abcdefghijklmnopqrstuvwxyz']


try:
    while True:
        for a in ABC:
            for b in ABC:
                for c in ABC:
                    for d in ABC:
                        for e in ABC:
                            for f in ABC:
                                print a, b, c, d, e, f, '    ',
except KeyboardInterrupt:
    pass


1

これが2番目の質問です。string.lowercase[ord('a')-97:ord('n')-97:2]なぜなら97==ord('a')、少し学びたい場合は、残りの部分を自分で理解する必要があるからです;-)


1
list(string.ascii_lowercase)

['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']


0

ニブラーの答えについて。

Zip関数、完全な説明、戻りa list of tuples, where the i-th tuple contains the i-th element from each of the argument sequences or iterables. [...]構造はリスト内包と呼ばれ、非常に優れた機能です。


0

それを行う別の方法

  import string
  pass

  aalist = list(string.ascii_lowercase)
  aaurls = ['alpha.com','bravo.com','chrly.com','delta.com',]
  iilen  =  aaurls.__len__()
  pass

  ans01 = "".join( (aalist[0:14]) )
  ans02 = "".join( (aalist[0:14:2]) )
  ans03 = "".join( "{vurl}/{vl}\n".format(vl=vjj[1],vurl=aaurls[vjj[0] % iilen]) for vjj in enumerate(aalist[0:14]) )
  pass

  print(ans01)
  print(ans02)
  print(ans03)
  pass

結果

abcdefghijklmn
acegikm
alpha.com/a
bravo.com/b
chrly.com/c
delta.com/d
alpha.com/e
bravo.com/f
chrly.com/g
delta.com/h
alpha.com/i
bravo.com/j
chrly.com/k
delta.com/l
alpha.com/m
bravo.com/n

これが他の返信とどう違うか

  • 任意の数のベースURLを反復する
  • URLを循環し、文字がなくなるまで停止しません
  • enumerateリスト内包表記およびstr.formatと組み合わせて使用する
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.