반복 위 목록의 정수와 합류 조건에 따라 항목을

0

질문

내가 하려고 반복의 목록을 정수 및들에 가입하는 조건에 따라 사용하는 파이썬 표준 라이브러리입니다. 예를 들어,내가 목록의 정수로 보이는 이와 같:

listOfIntegers = [0, 0, 0, 2, 0, 4, 6, 0, 8, 0, 0, 0, 1, 9]

하고 싶을 반복하여 이 목록과 결합한 값이 이러한 결과는 것 문자열의 형태로 되어 있습니다.

result = '000-20-4-60-8000-1-9'

(는 대시가 포함되어 있습니다). 에 대한 조건은 경우에는 위의 번호를 동일하지 않을 제시해야의 앞에 배치됩니다. 는 경우 다음 값이 동일한 제로에 가입됩니다 끝이의 값이다.

integer iteration list python
2021-11-23 03:49:53
4

최고의 응답

2

이것이 도움이 될 것 이다: (고려 숫자는 긍정적인에서는 주어진 목록)

def join(lst):
    return "".join(list(map(lambda x: str(-x), lst))).lstrip('-')

listOfIntegers = [0, 0, 0, 2, 0, 4, 6, 0, 8, 0, 0, 0, 1, 9]
print(join(listOfIntegers)) # 000-20-4-60-8000-1-9

프로세스:

  1. 변환 각 요소에 부정적인에서는:
    • 9-9
    • 0 아무 효과가 없으로 -00 파이썬
  2. 그로 전환할 문자열을 그들과 합류
  3. 는지 확인을 제거 후행 hyphen에서 우리의 케이스 lstrip('-') 는 데 도움이 됩니다.
2021-11-23 04:48:25

참고 당신이 무엇을 했는지 그리고 왜 그것은 일했다. 이것은 더 나은 다른 사람에 걸쳐 올 수 있습니다 나중에 이 페이지.
krmogi

당신의 답을 개선할 수 있는 추가 지원하는 정보입니다. 십시오 편집 을 더 추가 정보와 같은 인용 또는 문서,그래서 다른 사람을 확인할 수 있는 것입니다. 을 찾을 수 있습하는 방법에 대한 자세한 정보를 쓰기 좋은 도움말 센터에서.
Community
1

간단한 방법을 구축,문자열 목록에서의 정수,다음에는 간단한 정규 표현식 교체:

listOfIntegers = [1, 0, 0, 2, 0, 4, 6, 0, 8, 0, 0, 0, 1, 9]
inp = ''.join([str(x) for x in listOfIntegers])
result = re.sub(r'(?<=.)(?=[^\D0])', '-', inp)
print(result)  # 100-20-4-60-8000-1-9
2021-11-23 04:07:00

연결은 무엇을 찾았 다른 사람이 문제를 해결하기 위해 다음과 유사합니다. 사실 나는 확 본 솔루션과 매우 유사하다. 나는 가정 하나의 세부 사항를 언급하지 못하는 값에서 이 목록의 정수를 변경하는 기능을 갖는 모든 값으로 0-9. 면 무엇이 일어나 두 번째 항목의 목록은 지금 1. 어쨌든 자동화하는 연결 프로세스는 등의 결과는 지금 것#0-10-20-4-60-8000-1-9
42Dugg

@Dugg 가 업데이트와는 다른 대답이다.
Tim Biegeleisen

이뿐만 아니라 다른 답을 위한 좋은 작품는 경우에,그러나 목록 변경하는 등의 첫 번째 항목 목록은 이제 1 결과#-100-20-4-60-8000-1-9 는 대시는 것은 불행하게도에 배치됩니다. 하는 방법은 없을 제거에서 일어나는 등의 결과는 것#100-20-4-60-8000-1-9? 또한 당신이 톤의 도움으로 지금까지 이다. 감사합니다!
42Dugg

@42Dugg 확인 업데이 대답합니다. 를 추가할 수 있습니다 긍정적인 좌측 주장하는 대시만에 대한 추가 이외의 문자가 먼저 하나입니다.
Tim Biegeleisen
0

여기에는 간단한 솔루션:

listOfIntegers = [0, 0, 0, 2, 0, 4, 6, 0, 8, 0, 0, 0, 1, 9]

for i in listOfIntegers:
    if i != 0:
        print("-" + str(i), end="")
    else:
        print(str(i), end="")

각 항목에 대한 목록에서,우리는 체크인 경우 상품 같지 않은 0 입니다. 그렇지 않은 경우 0,우리는 인쇄 품목과 함께 대 앞에 그것은,사용 end 을 피하기 위해 매개 변수를 새로운 라인입니다. 0 인 경우에,우리는 단순 인쇄 항목입니다.

2021-11-23 04:35:53
0

를 사용하여 반복:

def func(nums):
    result = ''
    for i, num in enumerate(nums):
        if num != 0 and i != 0:
            result += '-'
        result += str(num)
    return result
2021-11-23 03:55:07

이 밖으로 작동한 경우에,그러나 목록 변경되는 첫 번째 항목의 목록은 지금의 1 결과#-100-20-4-60-8000-1-9 는 대시는 것은 불행하게도에 배치됩니다. 하는 방법은 없을 제거에서 일어나는 등의 결과는 것#100-20-4-60-8000-1-9? 감사합니다!
42Dugg

죄송하는 경우 가장자리. 우리는 단순히 조건을 추가를 건너 최초의 번호입니다. 내가 편집한 코드습니다.
Tyler Liu

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................