Search code examples
pythonlistoutputstrip

How do I remove commas and quotations from my list output


Having a hard time stripping these quotation marks and commas from my list,

**SHOWN BELOW IN THE SECOND PART OF MY CODE OUTPUT**I need all of the (' ',) to be stripped from the output and I keep trying the rstrip() on my team variablebut it is giving me this ERROR.

TypeError: Can't convert 'int' object to str implicitly

I think I may have built my code wrong....but this is a last ditch effort to stop myself from trashing it and starting over

#list of teams
Champs = ['Boston Americans', 'New York Giants', 'Chicago White Sox', 'Chicago Cubs', 'Chicago Cubs', 'Pittsburgh Pirates', 'Philadelphia Athletics', 'Philadelphia Athletics', 'Boston Red Sox', 'Philadelphia Athletics', 'Boston Braves', 'Boston Red Sox', 'Boston Red Sox', 'Chicago White Sox', 'Boston Red Sox', 'Cincinnati Reds', 'Cleveland Indians', 'New York Giants', 'New York Giants', 'New York Yankees', 'Washington Senators', 'Pittsburgh Pirates', 'St. Louis Cardinals', 'New York Yankees', 'New York Yankees', 'Philadelphia Athletics', 'Philadelphia Athletics', 'St. Louis Cardinals', 'New York Yankees', 'New York Giants', 'St. Louis Cardinals', 'Detroit Tigers', 'New York Yankees', 'New York Yankees', 'New York Yankees', 'New York Yankees', 'Cincinnati Reds', 'New York Yankees', 'St. Louis Cardinals', 'New York Yankees', 'St. Louis Cardinals', 'Detroit Tigers', 'St. Louis Cardinals', 'New York Yankees', 'Cleveland Indians', 'New York Yankees', 'New York Yankees', 'New York Yankees', 'New York Yankees', 'New York Yankees', 'New York Giants', 'Brooklyn Dodgers', 'New York Yankees', 'Milwaukee Braves', 'New York Yankees', 'Los Angeles Dodgers', 'Pittsburgh Pirates', 'New York Yankees', 'New York Yankees', 'Los Angeles Dodgers', 'St. Louis Cardinals', 'Los Angeles Dodgers', 'Baltimore Orioles', 'St. Louis Cardinals', 'Detroit Tigers', 'New York Mets', 'Baltimore Orioles', 'Pittsburgh Pirates', 'Oakland Athletics', 'Oakland Athletics', 'Oakland Athletics', 'Cincinnati Reds', 'Cincinnati Reds', 'New York Yankees', 'New York Yankees', 'Pittsburgh Pirates', 'Philadelphia Phillies', 'Los Angeles Dodgers', 'St. Louis Cardinals', 'Baltimore Orioles', 'Detroit Tigers', 'Kansas City Royals', 'New York Mets', 'Minnesota Twins', 'Los Angeles Dodgers', 'Oakland Athletics', 'Cincinnati Reds', 'Minnesota Twins', 'Toronto Blue Jays', 'Toronto Blue Jays', 'Atlanta Braves', 'New York Yankees', 'Florida Marlins', 'New York Yankees', 'New York Yankees', 'New York Yankees', 'Arizona Diamondbacks', 'Anaheim Angels', 'Florida Marlins', 'Boston Red Sox', 'Chicago White Sox', 'St. Louis Cardinals', 'Boston Red Sox', 'Philadelphia Phillies', 'New York Yankees', 'San Francisco Giants', 'St. Louis Cardinals', 'San Francisco Giants', 'Boston Red Sox']    

#sort list alphabetically
Champs.sort()

for team in [ele for ind, ele in enumerate(Champs,1) if ele not in Champs[ind:]]:
    count = 0
    for ele in Champs:
        if team == ele:
            count += 1
    print((team.strip(),count.strip()))
    count = 0

--------My Output follows-----------

Welcome to the world series team count report generator.

Choose an option from the following list.
1: Find out the count of wins for a single team.
2: Run a report showing all teams with their count of wins.
3: Exit the program.

Enter your choice: 2
Team Count of Wins 
------------------------------

Team Name       Wins
('Anaheim Angels', 1)
('Arizona Diamondbacks', 1)
('Atlanta Braves', 1)
('Baltimore Orioles', 3)
('Boston Americans', 1)
('Boston Braves', 1)
('Boston Red Sox', 7)
('Brooklyn Dodgers', 1)
('Chicago Cubs', 2)
('Chicago White Sox', 3)
('Cincinnati Reds', 5)
('Cleveland Indians', 2)
('Detroit Tigers', 4)
('Florida Marlins', 2)
('Kansas City Royals', 1)
('Los Angeles Dodgers', 5)
('Milwaukee Braves', 1)
('Minnesota Twins', 2)
('New York Giants', 5)
('New York Mets', 2)
('New York Yankees', 27)
('Oakland Athletics', 4)
('Philadelphia Athletics', 5)
('Philadelphia Phillies', 2)
('Pittsburgh Pirates', 5)
('San Francisco Giants', 2)
('St. Louis Cardinals', 11)
('Toronto Blue Jays', 2)
('Washington Senators', 1)

Solution

  • Wrapping the items with ( ) makes it a tuple; you should remove the extra parenthesis in your call to print. And you don't need strip for int type. You also don't to strip the string either (in this case):

    print(team, count)
    

    More so, collections.Counter already does what you're trying to do:

    from collections import Counter
    
    for k, v in Counter(Champs).items():
        print(k, v)