计算一个Python程序,以按字母顺序显示原始13个状态的以下输出

2024-04-19 03:06:33 发布

您现在位置:Python中文网/ 问答频道 /正文

文件States.txt按美国50个州加入联邦的顺序包含这些州。使用for循环编写一个程序,以按字母顺序显示原始13个状态的以下输出。你知道吗

文件内的内容状态.txt:

Delaware
Pennsylvania
New Jersey
Georgia
Connecticut
Massachusetts
Maryland
South Carolina
New Hampshire
Virginia
New York
North Carolina
Rhode Island
Vermont
Kentucky
Tennessee
Ohio
Louisiana
Indiana
Mississippi
Illinois
Alabama
Maine
Missouri
Arkansas
Michigan
Florida
Texas
Iowa
Wisconsin
California
Minnesota
Oregon
Kansas
West Virginia
Nevada
Nebraska
Colorado
North Dakota
South Dakota
Montana
Washington
Idaho
Wyoming
Utah
Oklahoma
New Mexico
Arizona
Alaska
Hawaii

我当前的编码:

infile = open("States.txt", 'r')
states = [line.rstrip() for line in infile]
states.sort()      # I sort those 50 states in alphabetical order first
for state in states:
    print("\r", states[6],"\n",states[7], "\n", states[9], "\n", states[19], "\n", states[20], "\n", states[28], "\n", states[29], "\n", states[31], "\n", states[32], "\n", states[37], "\n", states[38], "\n", states[39], "\n", states[45], end="")   #I locate exact position of those 13 states
    break
infile.close()

虽然我可以使用上面的编码显示预期的输出,但是使用for循环函数肯定不是一个好方法,因为我仍然可以在没有for循环语句的情况下显示确切的结果。你知道吗

程序的预期输出:(13个状态需要垂直显示)

Connecticut
Delaware
Georgia
Maryland
Massachusetts
New Hampshire
New Jersey
New York
North Carolina
Pennsylvania
Rhode Island
South Carolina
Virginia

Tags: 文件in程序txtnewfor顺序状态
3条回答

因此,如果第一个列表包含50个状态,并且您应该按排序顺序输出其中的13个状态,我猜您可以制作一个包含13个关键状态的列表,在for循环中,您可以检查某个状态是否是其中之一,并且仅当为true时才打印它?你知道吗

您可以使用itertools.islice在排序前只读取文件的前13行:

from itertools import islice
with open('States.txt') as infile:
    print(*sorted(islice(infile, 13)), sep='')

在排序之前,可以使用slicing获取states的前13个条目:

infile = open("States.txt", 'r')
states = [line.rstrip() for line in infile]
original_states = states[:13]
original_states.sort()
for state in original_states:
    print(state)
infile.close()

相关问题 更多 >