אתגר (בשבילי) בפייתון
אני רוצה לאתגר את עצמי ונתקלתי באתגר שלא מצליח לחשוב על פתרון שעובד...
המטרה: תכנית מקבלת מהמשתמש משפט והתוכנית צריכה לספור כמה פעמים כל תו מופיע. למשל, למחרוזת "Hello world", הפלט יהיה:
H 1
e 2
l 3
o 2
w 1
r 1
d 1
מה שאני מנסה לעשות זה לבנות רשימה שהערכים שלה כרגע זה 0, וכל אות תוסיף במיקום של האות (לפי סדר ה- abc) 1, כך שיש ספירה. זה הקוד:
בעצם מה שאני רוצה במקרה הזה, בשביל האות הראשונה (h) שברשימה במיקום 8 (או 7 לפי פייתון) יתווסף ל- 0 1, כלומר הערך יהיה 1. במקרה של האות l (האות L) יהיה 2 בגלל שבהתחלה יש תוספת של אחד ואז עוד אחד, כך שזה 2.
ההודעה שאני מקבל:
איך בעצם אני סופר כמות תווים במחרוזת?
אני רוצה לאתגר את עצמי ונתקלתי באתגר שלא מצליח לחשוב על פתרון שעובד...
המטרה: תכנית מקבלת מהמשתמש משפט והתוכנית צריכה לספור כמה פעמים כל תו מופיע. למשל, למחרוזת "Hello world", הפלט יהיה:
H 1
e 2
l 3
o 2
w 1
r 1
d 1
מה שאני מנסה לעשות זה לבנות רשימה שהערכים שלה כרגע זה 0, וכל אות תוסיף במיקום של האות (לפי סדר ה- abc) 1, כך שיש ספירה. זה הקוד:
קוד:
str = "Hello world"
str = str.str.lower()
cnt_char = [0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0)
for char in str:
cnt_char[char] += 1
print cnt_char
ההודעה שאני מקבל:
קוד:
Traceback (most recent call last):
File "C:/Users/Et/PycharmProjects/tirgul.py/tirgul.py", line 7, in <module>
cnt_char[char] += 1
TypeError: list indices must be integers, not str