Difference between revisions of "Python: String Operation"

From OnnoWiki
Jump to navigation Jump to search
 
Line 71: Line 71:
 
     except:
 
     except:
 
         list2.append([word,0])
 
         list2.append([word,0])
 +
 +
 +
==Frequency word==
 +
 +
from collections import Counter
 +
import re
 +
 +
words = re.findall(r'\w+', open('hasilbrowsepilkadadki.txt').read().lower())
 +
Counter(words).most_common(10)
 +
[('the', 1143), ('and', 966), ('to', 762), ('of', 669), ('i', 631),
 +
('you', 554),  ('a', 546), ('my', 514), ('hamlet', 471), ('in', 451)]

Latest revision as of 06:38, 2 February 2017


Strip /n

  • line.strip() - remove all types of whitespaces from both ends of the line.
  • line.rstrip("\n") remove only the trailing "\n".


Hitung banyak word

len(string.split())


Join Line

Pakai str.join:

with open('file.txt') as f:
    print " ".join(line.strip() for line in f)


Remove specific line

f = open("yourfile.txt","r")
lines = f.readlines()
f.close()

f = open("yourfile.txt","w")
for line in lines:
  if line!="nickname_to_delete"+"\n":
    f.write(line)
f.close()


Percobaan

namafile = "yourfile.txt"
f = open(namafile,"r")
lines = f.readlines()
f.close()

f = open(namafile,"w")
for line in lines:
  if len(line.split())>1:
    f.write(line)
f.close()
f = open(namafile,"r")
    print " ".join(line.strip() for line in f)
f.close()


Frequency word

list1 = []    #this is your original list of words
list2 = []    #this is a new list

for word in list1:
    if word in list2:
        list2.index(word)[1] += 1
    else:
        list2.append([word,0])

Or, more efficiently:

for word in list1:
    try:
        list2.index(word)[1] += 1
    except:
        list2.append([word,0])


Frequency word

from collections import Counter
import re
words = re.findall(r'\w+', open('hasilbrowsepilkadadki.txt').read().lower())
Counter(words).most_common(10)

[('the', 1143), ('and', 966), ('to', 762), ('of', 669), ('i', 631),

('you', 554),  ('a', 546), ('my', 514), ('hamlet', 471), ('in', 451)]