小编Tho*_*nes的帖子

Python:使用Excel CSV文件只读取某些列和行

虽然我可以读取csv文件而不是读取整个文件,但如何只打印某些行和列?

想象一下,好像这​​是Excel:

  A              B              C                  D                    E
State  |Heart Disease Rate| Stroke Death Rate | HIV Diagnosis Rate |Teen Birth Rate

Alabama     235.5             54.5                 16.7                 18.01

Alaska      147.9             44.3                  3.2                  N/A    

Arizona     152.5             32.7                 11.9                  N/A    

Arkansas    221.8             57.4                 10.2                  N/A    

California  177.9             42.2                  N/A                  N/A    

Colorado    145.3             39                    8.4                 9.25    
Run Code Online (Sandbox Code Playgroud)

继承人我所拥有的:

import csv

try:
    risk = open('riskfactors.csv', 'r', encoding="windows-1252").read() #find the file

except:
    while risk != "riskfactors.csv":  # if the file cant be found if there is an error …
Run Code Online (Sandbox Code Playgroud)

python excel file

2
推荐指数
1
解决办法
4万
查看次数

Python从列表中删除数据以添加到新列表中

问题:如何从列表中删除第一个单词以添加到名为的新列表中car_list,并将其余单词添加到另一个列表中other_list.

other_list我把其余的到字典中

比如我读文件时得到的东西

data_file = ['1911 Overland OctoAuto', '1913 Scripps-Booth Bi-Autogo','1920 Briggs and Stratton Flyer'

car_list = [] other_list = []

我如何得到如下结果

car_list = [Overland, Scripps-Booth, Briggs]

other_list = [1911,OctoAuto, 1913, Bi-Autogo, 1920, and Stratton flyer]
Run Code Online (Sandbox Code Playgroud)

这就是我所拥有的

data_file = open("facts.txt", 'r')


def clean_list(data_file):
    new_list =[]
    clean_list =[]
    car_list = []
    other_list = []
    D = {}
    for i in data_file:
        new_list = data_file.split('\n') #change split by new line or word

    clean_list = [(x.strip(' ')) …
Run Code Online (Sandbox Code Playgroud)

python list add cpu-word

2
推荐指数
1
解决办法
191
查看次数

将三个列表合并为一个字典

我需要将三个列表合并为一个字典.这些列表来自读取我格式化的txt文件,这里是该文件的一个片段:

maker =['Horsey', 'Ford', 'Overland', 'Scripps-Booth']

year = ['1899', '1909', '1911', '1913']

model = ['Horseless', 'Model T', 'OctoAuto', 'Bi-Autogo']
Run Code Online (Sandbox Code Playgroud)

进入以下:

car_dict = {'Horsey':1899,'Horseless','Ford':1909,'Model T','Overland' : 1911, 'OctoAuto', 'Scripps-Booth' : 1913, 'Bi-Autogo'}
Run Code Online (Sandbox Code Playgroud)

这是我做的:

def car_data_merge(car_maker,car_model,car_year):
    car_dict = {}
    car_merge = []

    car_dict = defaultdict(partial(defaultdict,list))

    for (car_maker,car_model,car_year) in zip(car_maker,car_model,car_year):
         car_dict[car_year][car_model].append(car_maker)
    print(car_dict)
Run Code Online (Sandbox Code Playgroud)

当我输入这个时,我得到:

{'Horsey': defaultdict(<class 'list'>, {'1899': ['Horseless']})
Run Code Online (Sandbox Code Playgroud)

并非显示列表中的所有数据,我不希望defaultdict显示.

当我尝试以下内容时:

def car_data_merge(car_maker,car_data):
    car_dict = {}
    car_merge = []
    car_merge = zip(car_maker,car_data)  
    car_dict = dict(car_merge)
    print(car_dict)

    ###   car_data holds both year and …
Run Code Online (Sandbox Code Playgroud)

python merge dictionary list

2
推荐指数
2
解决办法
4648
查看次数

随机数文件编写器

说明:

  • 编写一个程序,将一系列随机数写入文件.
  • 每个随机数应在1到100的范围内.
  • 应用程序应该让用户指定文件将包含多少个随机数.

这就是我所拥有的:

import random

afile = open("Random.txt", "w" )

for line in afile:
    for i in range(input('How many random numbers?: ')):
         line = random.randint(1, 100)
         afile.write(line)
         print(line)

afile.close()

print("\nReading the file now." )
afile = open("Random.txt", "r")
print(afile.read())
afile.close()
Run Code Online (Sandbox Code Playgroud)

一些问题:

  1. 它不是根据用户设置的范围在文件中写入随机数.

  2. 一旦打开文件就无法关闭.

  3. 读取文件时没有.

虽然我认为设置还可以,但似乎总是卡在执行上.

python random numbers

1
推荐指数
1
解决办法
1万
查看次数

Python:打印用户输入的常用字母

有没有更好的方法来编写这段代码.虽然没有错误,但它似乎打印了我输入的所有字母排序到列表中.

我想在字符串中打印常用字母,即使不止一个.

这就是我所拥有的

mystr = input("Enter a string:")
s = list(mystr) 
letter_counter = {}
for word in mystr:
    if word in letter_counter:
         letter_counter[word] += 1
    else:
         letter_counter[word] = 1

 user_letter = sorted(letter_counter, key = letter_counter.get, reverse = True)

 number_1 = user_letter[:2]
 print(number_1)  
Run Code Online (Sandbox Code Playgroud)

我可以打印正确字母的唯一方法是设置限制

number_1 = user_letter[:2]

例如,如果我输入以下内容:

mystr = input("Thomas Jones")
Run Code Online (Sandbox Code Playgroud)

在代码中打印输出将是

print(number_1)       
[o], [s]
Run Code Online (Sandbox Code Playgroud)

这是正确的,但如果将限制由设置23

number_1 = user_letter[:3]

它将打印[o] [s] [a]只有一个a它不应该存在.我想要它,以便用户输入任何数量的单词将显示没有限制器的正确重复字母.

我是开明的,我不知道如何纠正这个问题

python printing letter count

1
推荐指数
1
解决办法
742
查看次数

标签 统计

python ×5

list ×2

add ×1

count ×1

cpu-word ×1

dictionary ×1

excel ×1

file ×1

letter ×1

merge ×1

numbers ×1

printing ×1

random ×1