将列表转换为小写

时间:2013-06-26 19:46:31

标签: python

我正在尝试在input.txt中获取这一列的单词:

Suzuki music
Chinese music
Conservatory
Blue grass
Rock n roll
Rhythm
Composition
Contra
Instruments 

采用以下格式:

"suzuki music", "chinese music", "conservatory music", "blue grass", "rock n roll", "rhythm"...

此代码:

with open ('artsplus_stuff.txt', 'r') as f:
    list.append(", ".join(['%s' % row for row in f.read().splitlines()]))
    for item in list:
        item.lower()

print list

返回一个列表,但第一个字母大写。

['铃木音乐,中国音乐,音乐学院,蓝草,摇滚乐,节奏,作曲,反奏,乐器']

如何将所有项目降低?

谢谢!


答案不在此列表中:

Chess
Guitar
Woodworking
Gardening
Car_restoration
Metalworking
Marksman
Camping
Backpacking_(wilderness)
Hunting
Fishing
Whittling
Geocaching
Sports
Model_Building
Leatherworking
Bowling
Archery
Hiking
Connoisseur
Photography
Pool_(cue_sports)
Mountaineering
Cooking
Blacksmith
Aviator
Magic_(illusion)
Foreign_language
Card_game
Blog
Paintball
Fencing
Brewing
Amateur_Astronomy
Genealogy
Adventure_racing
Knitting
Computer_Programming
Amateur_radio
Audiophile
Baking
Bboying
Baton_twirling
Chainmail
Constructed_language
Coloring
Crocheting
Creative_writing
Drawing
Fantasy_Football
Fishkeeping
Home_automation
Home_Movies
Jewelry
Knapping
Lapidary_club
Locksport
Musical_Instruments
Painting
RC_cars
Scrapbooking
Sculpting
Sewing
Singing
Writing
Air_sports
Boardsport
Backpacking
Bonsai
Canoeing
Cycling
Driving
Freerunning
Jogging
Kayaking
Motor_sports
Mountain_biking
Machining
Parkour
Rock_climbing
Running
Sailing
Sand_castle
Sculling
Rowing_(sport)
Human_swimming
Tai_Chi
Vehicle_restoration
Water_sports
Antiques
Coin_collecting
Element_collecting
Stamp_collecting
Vintage_car
Vintage_clothing
Record_Collecting
Antiquities
Car_audio
Fossil_collecting
Insect_collecting
Leaf
Metal_detectorist
Mineral_collecting
Petal
Rock_(geology)
Seaglass
Seashell
Boxing
Combination_puzzle
Contract_Bridge
Cue_sports
Darts
Table_football
Team_Handball
Airsoft
American_football
Association_football
Auto_racing
Badminton
Climbing
Cricket
Disc_golf
Figure_skating
Footbag
Kart_racing
Plank_(exercise)
Racquetball
Rugby_league
Table_tennis
Microscopy
Reading_(process)
Shortwave_listening
Videophile
Aircraft_spotting
Amateur_geology
Birdwatching
Bus_spotting
Gongoozler
Meteorology
Travel
Board_game
Airbrush
Advocacy
Acting
model_aircraft
Pets
Aquarium
Astrology
Astronomy
Backgammon
Base_Jumping
Sun_tanning
Beachcombing
Beadwork
Beatboxing
Campanology
Belly_dance
cycle_Polo
Bicycle_motocross
Boating
Boomerang
Volunteering
Carpentry
Butterfly_Watching
Button_Collecting
Cake_Decorating
Calligraphy
Candle
Cartoonist
Casino
Cave_Diving
Ceramic
Church
Cigar_Smoking
Cloud_Watching
Antique
Hat
album
Gramophone_record
trading_card
Musical_composition
Worldbuilding
Cosplay
Craft
Cross-Stitch
Crossword_Puzzle
Diecast
Digital_Photography
Dodgeball
Doll
Dominoes
Dumpster_Diving
restaurant
education
Electronics
Embroidery
Entertainment
physical_exercise
Falconry
List_of_fastest_production_cars
Felt
Poi_(performance_art)
Floorball
Floristry
Fly_Tying
off-roading
ultimate_(sport)
Game
Garage_sale
Ghost_Hunting
Glowsticking
Gunsmith
Gyotaku
Handwriting
Hang_gliding
Herping
HomeBrewing
Home_Repair
Home_Theater
Hot_air_ballooning
Hula_Hoop
Ice_skating
Impersonator
Internet
Invention
Jewellery
Jigsaw_Puzzle
Juggling
diary
skipping_rope
amateur_Chemistry
Kite
snowkiting
knot
Laser
Lawn_Dart
poker
Leather_crafting
Lego
Macramé
Model_Car
Matchstick_Model
Meditation
Metal_Detector
Rail_transport_modelling
Model_Rocket
ship_model
scale_model
Motorcycle
Needlepoint
Origami
Papermaking
Papier-mâché
Parachuting
Paragliding
Pinochle
Pipe_Smoking
Pottery
Powerbocking
Demonstration_(people)
Puppetry
Pyrotechnics
Quilting
pigeon_racing
Rafting
Railfan
Rapping
remote_control
Relaxation
Renaissance_Fair
Renting_movies
Robotics
Rock_Balancing
Role-playing
sand_art_and_play
Scuba_Diving
Self-Defense
Skeet_Shooting
Skiing
Shopping
choir
Skateboarding
Sketch_(drawing)
SlackLining
Sleep
Slingshot
Slot_Car_Racing
Snorkeling
Soap
Rubik's_Cube
caving
Family
Storm_Chasing
Storytelling
String_Figure
Surf_Fishing
Survival_skills
Tatting
Taxidermy
Tea_Tasting
Tesla_Coil
Tetris
Textile
stone_Rubbing
Antique_tool
Toy
Treasure_Hunting
Trekkie
tutoring
Urban_Exploration
Video_Game
Violin
Volunteer
Walking
Weightlifting
Windsurfing
WineMaking
Wrestling
Zip-line
traveling

错误:list.append(“,”。join(['“%s”'f.read()中的行的%行.shinlines()])) TypeError:描述符'append'需要'list'对象但收到'str' 注销

8 个答案:

答案 0 :(得分:38)

而不是

for item in list:
    item.lower()

将变量list的名称更改为l或者您喜欢的任何内容不是 Python中的保留字并使用以下行,显然替换为您为l列出名称。

l = [item.lower() for item in l]

lower方法以全小写字母返回字符串的副本。一旦创建了一个字符串,就没有什么可以修改它的内容,所以你需要创建一个包含你想要的新字符串。

答案 1 :(得分:9)

以下是如何做到的:

In [6]: l = ['Suzuki music', 'Chinese music', 'Conservatory', 'Blue grass']

In [7]: map(str.lower, l)
Out[7]: ['suzuki music', 'chinese music', 'conservatory', 'blue grass']

您的代码没有按预期运行的一个原因是item.lower()不修改字符串(在Python中,字符串是不可变的)。相反,它返回字符串的小写版本,然后您的代码会忽略它。

答案 2 :(得分:2)

最简单的可能是列表理解:

with open('./input.txt', 'r') as f:
    results = [ line.strip().lower() for line in f if line]

...我假设你愿意从每一行中删除所有前导和尾随空格;虽然您可以仅使用.rstrip()甚至.rstrip('\n')来更具体。 (一个会保留每行左边的任何空格,另一个会从行的末尾仅删除 换行符。

此外,这将过滤掉任何空白行,包括终端空行,这几乎总是在文本文件的末尾找到。 (此代码即使使用不以换行符结尾的罕见文本文件也能正常工作。)

答案 3 :(得分:1)

您可以使用方法str.lower()。

答案 4 :(得分:1)

对于那些喜欢计时测试的人

In [1]: %timeit [c.lower() for c in l]
1000000 loops, best of 3: 866 ns per loop

In [2]: %timeit map(str.lower, l)
1000000 loops, best of 3: 1.01 µs per loop

In [3]: %timeit map(lambda x:x.lower(), l)
1000000 loops, best of 3: 1.41 µs per loop

答案 5 :(得分:1)

只需将列表转换为小列表即可。

>>> words = ["PYTHON", "PROGRAMMING"]
>>> type((words))
>>> for i in words:
          print(i.lower())

输出:

python programming

答案 6 :(得分:0)

在Python中,字符串是不可变的。 Sam Hill的意思是什么。这意味着不能更改字符串。但是它们可以被替换。一个类比就是更换你的车。你的车是字符串变量。你无法将你的大众Bug变成雷克萨斯,但你可以通过购买雷克萨斯来取而代之。但我不想要两辆车!我想要更换VW Bug并且只留下我的宝贝。换一种说法。我宁愿不在我的Python脚本中添加另一个变量。但那只是我。

我已经开了一个Bug。很有趣!

myList = ["Suzuki music", "Chinese music", "Conservatory music", "Blue grass", "Rock n roll", "Rhythm"]

for i in range(0, len(myList)):
   myList[i] = myList[i].lower()

for item in myList:
   print item

答案 7 :(得分:0)

这是另一种方法:

my_list = ['John', 'michael', 'Robert', 'James']
new_list = []

for name in my_list:
    new_list.append(name.lower())

print(new_list)