programing

Python 문자열과 정수 연결

bestcode 2022. 11. 18. 21:39
반응형

Python 문자열과 정수 연결

for 루프에 부가된 정수를 사용하여 문자열을 만듭니다.다음과 같이 합니다.

for i in range(1, 11):
  string = "string" + i

그러나 다음 오류가 반환됩니다.

TypeError: +: 'int' 및 'str'에 대해 지원되지 않는 오퍼랜드 유형입니다.

문자열과 정수를 연결하는 가장 좋은 방법은 무엇입니까?

주의:

이 응답에 사용된 메서드(backticks)는 이후 버전의 Python 2에서는 사용되지 않으며 Python 3에서는 제거됩니다.대신 함수를 사용하십시오.


다음을 사용할 수 있습니다.

string = 'string'
for i in range(11):
    string +=`i`
print string

인쇄됩니다.string012345678910.

갖기 위해string0, string1 ..... string10제안하신 대로 사용할 수 있습니다.

>>> string = "string"
>>> [string+`i` for i in range(11)]

Python 3의 경우

다음을 사용할 수 있습니다.

string = 'string'
for i in range(11):
    string += str(i)
print string

인쇄됩니다.string012345678910.

갖기 위해string0, string1 ..... string10, 제안하신 대로 사용할 수 있습니다.

>>> string = "string"
>>> [string+str(i) for i in range(11)]
for i in range (1,10):
    string="string"+str(i)

갖기 위해string0, string1 ..... string10, 다음과 같이 할 수 있습니다.

>>> ["string"+str(i) for i in range(11)]
['string0', 'string1', 'string2', 'string3', 'string4', 'string5', 'string6', 'string7', 'string8', 'string9', 'string10']
for i in range[1,10]: 
  string = "string" + str(i)

str(i)함수는 정수를 문자열로 변환합니다.

string = 'string%d' % (i,)
for i in range(11):
    string = "string{0}".format(i)

그랬습니다(range[1,10]):

  • 각 괄호는 인덱스를 나타내므로 TypeError가 됩니다.a[3]또는 슬라이스(a[3:5])의 리스트,
  • 이후 SyntaxError가 발생하였습니다.[1,10]무효입니다.
  • 이후 두 가지 실수가 겹치다range(1,10)[1, 2, 3, 4, 5, 6, 7, 8, 9], 그리고 당신은 원하는 것 같습니다.[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

그리고.string = "string" + i문자열에 정수를 추가할 수 없기 때문에(JavaScript와 달리) TypeError가 됩니다.

Python의 새로운 문자열 포맷 방법에 대한 설명서를 참조하십시오.그것은 매우 강력해요.

발전기를 사용하여 이렇게 할 수 있습니다!

def sequence_generator(limit):
    """ A generator to create strings of pattern -> string1,string2..stringN """
    inc  = 0
    while inc < limit:
        yield 'string' + str(inc)
        inc += 1

# To generate a generator. Notice I have used () instead of []
a_generator  =  (s for s in sequence_generator(10))

# To generate a list
a_list  =  [s for s in sequence_generator(10)]

# To generate a string
a_string =  '['+ ", ".join(s for s in sequence_generator(10)) + ']'

다음과 같은 출력을 원한다면'string0123456789'그러면 맵 기능과 문자열의 결합 방식을 사용할 수 있습니다.

>>> 'string' + "".join(map(str, xrange(10)))
'string0123456789'

문자열 값 목록을 원할 경우 목록 이해 방법을 사용합니다.

>>> ['string'+i for i in map(str,xrange(10))]
['string0', 'string1', 'string2', 'string3', 'string4', 'string5', 'string6', 'string7', 'string8', 'string9']

주의:

Python 2.x에는 xrange()를 사용합니다.

Python 3.x 의 경우는 range()사용합니다.

나는 다른 일을 했다고요.

목록에서 구문이 포함된 단어를 대체하고 싶었습니다.

저는 그 문자열/단어를 문자열과 숫자 사이의 결합이 되는 새로운 단어로 바꾸고 싶었고, 그 숫자/숫자는 구/서브리스트/목록의 위치를 나타냅니다.

즉, 문자열을 문자열과 그 뒤에 이어지는 증분 번호로 대체했습니다.

myoldlist_1 = [[' myoldword'], [''], ['tttt myoldword'], ['jjjj ddmyoldwordd']]
    No_ofposition = []
    mynewlist_2 = []
    for i in xrange(0, 4, 1):
        mynewlist_2.append([x.replace('myoldword', "%s" % i + "_mynewword") for x in myoldlist_1[i]])
        if len(mynewlist_2[i]) > 0:
            No_ofposition.append(i)

mynewlist_2
No_ofposition

문자열과 정수의 연결은 간단합니다.사용만 하면 됩니다.

abhishek+str(2)

언급URL : https://stackoverflow.com/questions/2847386/python-strings-and-integer-concatenation

반응형