사용자가 사전 이해에서 벗어나도록 허용하려면 어떻게해야합니까?

배리 크라우치

나는 간단한 사전 이해 코드를 가지고 놀았고, 자동으로 생성 된 키 (원하는 경우 코드를 통해 교체 할 수있는 일련 번호)와 값에 대한 사용자 입력을 허용하도록 변경했습니다. 사용자가 키와 값을 입력 할 수있는 곳도 있습니다.

내 문제는 사용자가 이탈 할 수있는 방법을 찾는 것입니다. 즉, 항목 수로 100을 선택했지만 27 개만 필요한 경우 프로세스를 종료하기위한 명령을 입력 할 수있는 방법이 있어야합니다.

세 번째 예는 마지막에 조건을 입력했지만 파악하지 못한 경우입니다. 나는 그것을 할 때 작동하지 않을 것이라는 것을 알았고 사용자가 한 번의 실행을 할 수있게합니다.

"""
Example 1:
Auto-generated sequential numerical keys with user input for values:
"""

variable1=int(input("please select number of entries: ")) 

d1 = {x : input("Provide data: ") for x in range(1,variable1 + 1)}

"""
Example 2:
User input for keys and values:
"""
variable1=int(input("please select number of entries: ")) 

d1 = {input("Please provide key: "): input("Please provide data: " for x in range(1,variable1 + 1)}


"""
Example 3:
This shows where I tried to put the condition, which failed:
"""
variable1=int(input("please select number of entries: ")) 

d1 = {x : input("Provide data: ") for x in range(1,variable1 + 1) if x != 0}
Chepner

의 2- 인수 형식은 iter특정 변수를 반환 할 때까지 함수를 호출합니다. 특히, iter(input, "0")0이 아닌 정수 문자열 스트림을 생성하며 zip범위 를 사용할 수 있습니다 .

d1 = {x : y for x, y in zip(
                            range(1,100),
                            iter(lambda: input("Provide data "), "0")
                        )
}

또는을 사용 enumerate하여 input다음으로 필터링 할 수있는 번호가 매겨진 호출의 무한 스트림을 생성합니다 islice.

from itertools import islice


d1 = {x: y for x, y in islice(
                           enumerate(
                               iter(lambda: input("Provide data "), "0"),
                               1
                           ),
                           100
                       )
}

두 경우 모두 필터링되지 않은 튜플 스트림이 dict있으므로 이해력을 사용하는 대신 직접 전달할 수 있습니다 .

d1 = dict(zip(range(1,100), iter(lambda: input("Provide data "), "0")))
d1 = dict(islice(enumerate(iter(lambda: input("Provide data "), "0"), 1), 100))

모든 중첩 함수 호출의 Lisp와 유사한 특성을 (당연히) 싫어하는 사람들은 쉽게 읽을 수 있도록 여러 줄로 나눌 수 있습니다. 예를 들면

responses = iter(lambda: input("Provide data "), "0")
d1a = dict(zip(range(1,100), responses))
d1b = dict(islice(enumerate(responses, 1)), 100)   

또는 기존 루프를 선호하는 경우 :

d = {}
for k in range(1, 100):  # or itertools.count(1) for unbounded input
    v = input("Provide data ")
    if v == "0":
        break
    d[k] = v

Эта статья взята из Интернета, укажите источник при перепечатке.

Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.

Отредактировано в
0

я говорю два предложения

0обзор
Войти в системуУчаствуйте в комментариях

Статьи по теме

Swashbuckle에서 포트 443을 사용하도록 Swagger UI를 얻으려면 어떻게해야합니까?

현재 유효한 버전으로 Google 지도 API를 사용하려면 어떻게 해야 합니까?

istio에서 외부 서비스에 사용자 지정 클라이언트 인증서를 사용하려면 어떻게해야합니까?

실행할 코드에 대해 사용자에게 두 가지 옵션을 제공하려면 어떻게해야합니까?

내 목록 (RecyclerView)을 가장 많은 사용자의 위치 순서로 표시하려면 어떻게해야합니까?

Sphinx를 사용하여 클릭 명령을 문서화하려면 어떻게해야합니까?

Cgo를 사용하여 MATLAB 배열 내의 값에 액세스하려면 어떻게해야합니까?

값에 따라 두 개의 사전을 결합하려면 어떻게해야합니까?

우분투에서 nginx를 사용하여 IP 주소 대신 도메인 이름을 얻으려면 어떻게해야합니까?

ASP.NET MVC 5에서 사용자 지정 주체 유형을 등록하려면 어떻게해야합니까?

meson에서 빌드 타임에 사용자 지정 명령을 실행하려면 어떻게해야합니까?

pylab을 사용하여 진자 운동에 대한 위상 평면을 플로팅하려면 어떻게해야합니까?

Cloudwatch 지표를 사용하여 지난달 AWS에서 총 람다 호출 수를 계산하려면 어떻게해야합니까?

nodejs에서 sinon, mocha 및 chai를 사용하여 특정 인수로 함수를 호출하려면 어떻게해야합니까?

PayPal REST API를 사용하여 PayPal 판매자를 대신하여 처리 할 수있는 권한을 얻으려면 어떻게해야합니까?

내 웹 사이트에서 내 Firebase 데이터베이스의 데이터를 표시하려면 어떻게해야합니까?

Spacy minibatch 및 GoldParse를 사용하여 BILUO 태깅 체계를 사용하여 NER 모델을 훈련하려면 어떻게해야합니까?

Google 드라이브 스프레드 시트에 쓰는 Google 웹앱에 대한 액세스를 허용하려면 어떻게해야합니까?

ListView의 여러 항목을 클립 보드에 복사하려면 어떻게해야합니까?

비동기주기에서 벗어나려면 어떻게해야합니까?

레코드의 값을 인터페이스 유형이 동일한 객체 키로 사용하려면 어떻게해야합니까?

함수가 라이브러리 내부 연결을 갖도록하려면 어떻게해야합니까?

RxJS 6 파이프 연산자에서 값을 유지하려면 어떻게해야합니까?

앵커 태그에 요소를 클릭할 필요가 없도록 하려면 어떻게 해야 합니까?

스크랩하려는 URL에 올바르게 적용되도록 정규식을 변경하려면 어떻게해야합니까?

Flutter의 Bottom Navigation Bar를 사용하여 내비게이션으로 자체 재 빌드하기 위해 상태 저장 위젯을 트리거하려면 어떻게해야합니까?

사전 목록을 기반으로하는 두 개의 Python 데이터 세트를 어떻게 추가해야합니까?

ManyToMany 필드에 대한 순서를 추가하려면 어떻게 해야 합니까?

Laravel 5.3 양식 유효성 검사-선택 상자의 유효성을 검사하려면 어떻게해야합니까?

TOP список

  1. 1

    Распределение Рэлея Curve_fit на Python

  2. 2

    TypeError: store.getState não é uma função. (Em 'store.getState ()', 'store.getState' é indefinido, como posso resolver esse problema?

  3. 3

    В типе Observable <unknown> отсутствуют следующие свойства из типа Promise <any>.

  4. 4

    Как добавить Swagger в веб-API с поддержкой OData, работающий на ASP.NET Core 3.1

  5. 5

    How to click an array of links in puppeteer?

  6. 6

    Merging legends in plotly subplot

  7. 7

    ViewPager2 мигает / перезагружается при смахивании

  8. 8

    Отчеты Fabric Debug Craslytic: регистрация, отсутствует идентификатор сборки, применить плагин: io.fabric

  9. 9

    How to normalize different curves drawn with geom = "step" when using stat_summary

  10. 10

    无法通过Vue在传单中加载pixiOverlay

  11. 11

    как я могу удалить vue cli 2?

  12. 12

    Как я могу нарисовать заполненный прямоугольник в JFreeChart?

  13. 13

    SQL Вычтите две строки друг от друга в одном столбце, чтобы получить результат

  14. 14

    Elasticsearch - Нечеткий поиск не дает предложения

  15. 15

    Single legend for Plotly subplot for line plots created from two data frames in R

  16. 16

    Описание моего типа Parser как серии преобразователей монад

  17. 17

    Как изменить цвета запятых и скобок в VS Code

  18. 18

    Сброс значения <input type = "time"> в Firefox

  19. 19

    Почему прокси в vue.config.js 404

  20. 20

    Как установить параметр -noverify с gradle ktx для робоэлектрических тестов Android?

  21. 21

    В чем разница между ifstream, ofstream и fstream?

популярныйтег

файл