Ich weiß nicht, wie viel ich tun kann. (vgl. Knock 100-Sprachverarbeitung 2015)
# coding: utf-8
s = "stressed"
print(s[::-1])
# coding: utf-8
s = "Patatoku Kashii"
print(s[::2])
# coding: utf-8
s1 = 'Pat Auto'
s2 = 'Taxi'
s = ''.join([i+j for i, j in zip(s1, s2)])
print(s)
Sie können einen Iterator aus mehreren Iterables mit zip () erstellen.
Nachtrag
# coding: utf-8
s1 = 'Pat Auto'
s2 = 'Taxi'
s = ''.join(i+j for i, j in zip(s1, s2))
print(s)
Es ist nicht erforderlich, eine unnötige Liste mithilfe der Generatoreinschlussnotation zu erstellen.
# coding: utf-8
import re
s = 'Now I need a drink, alcoholic of course, after the heavy lectures involving quantum mechanics.'
#Schließen Sie Kommas und Kommas aus und teilen Sie sie in eine wortweise Liste auf
s = re.sub('[,.]', '', s)
s = s.split()
#Zählen Sie die Anzahl der Zeichen und die Liste
result = []
for w in s:
result.append(len(w))
print(result)
Nachtrag
# coding: utf-8
s = 'Now I need a drink, alcoholic of course, after the heavy lectures involving quantum mechanics.'
#Nachdem Sie es in eine wortweise Liste zerlegt haben,.Schließen Sie die Anzahl der Zeichen aus und zählen Sie sie
result = [len(w.rstrip(',.')) for w in s.split()]
print(result)
Der Prozess des Initialisierens mit einer leeren Liste und des Drehens nach wird mit der Einschlussnotation neu geschrieben. rstrip ()
entfernt das angegebene Zeichen von rechts. Zeichen können zusammen angegeben werden.
# coding: utf-8
s = 'Hi He Lied Because Boron Could Not Oxidize Fluorine. New Nations Might Also Sign Peace Security Clause. Arthur King Can.'.split()
target = [1, 5, 6, 7, 8, 9, 15, 16, 19]
result ={}
for i in range(len(s)):
if i + 1 in target:
result[i+1] = s[i][:1]
else:
result[i+1] = s[i][:2]
print(result)
Nachtrag
# coding: utf-8
s = 'Hi He Lied Because Boron Could Not Oxidize Fluorine. New Nations Might Also Sign Peace Security Clause. Arthur King Can.'
target = 1, 5, 6, 7, 8, 9, 15, 16, 19
result = [w[: 1 if i in target else 2] for i, w in enumerate(s.split(), 1)]
print(result)
In dem Teil von "[: 1, wenn i in Ziel sonst 2]" habe ich mich gefragt, ob sonst in der Einschlussnotation verwendet werden kann, aber dies ist das Slice "[: x]" und der ternäre Operator "a if cond else b Eine Kombination von `.
# coding: utf-8
def n_gram(n, s):
result = []
for i in range(0, len(s)-n+1):
result.append(s[i:i+n])
return result
print(n_gram(2, 'I am an NLPer'))
Nachtrag
# coding: utf-8
def n_gram(n, s):
return [s[i:i+n] for i in range(0, len(s)-n+1)]
print(n_gram(2, 'I am an NLPer'))
Dies wird in der initialisierten Liste auch mit "für" angehängt, sodass es mit der Einschlussnotation neu geschrieben werden kann. Ich bin nicht an die Einschlussnotation gewöhnt, daher habe ich den Eindruck, dass es schwierig ist, sie einzuschreiben und neu zu schreiben.
# coding: utf-8
#Summensatz, Produktsatz, Differenzsatz von zwei Bigrams
def bi_gram(s):
result = []
for i in range(0, len(s)-1):
result.append(s[i:i+2])
return result
s1 = 'paraparaparadise'
s2 = 'paragraph'
X = set(bi_gram(s1))
Y = set(bi_gram(s2))
print("X = ", X)
print("Y = ", Y)
print("union: ", X | Y) # union
print("intersection: ", X & Y) # intersection
print("difference: ", X - Y) # difference
if "se" in X:
print("X contain 'se'.")
else:
print("X doesn't contain 'se'.")
if "se" in Y:
print("Y contain 'se'.")
else:
print("Y doesn't contain 'se'.")
# coding: utf-8
def gen_sentence(x, y, z):
return "{}von Zeit{}Ist{}".format(x, y, z)
x = 12
y = 'Temperatur'
z = 22.4
print(gen_sentence(x, y, z))
# coding: utf-8
def cipher(S):
result = []
for i in range(len(S)):
if(S[i].islower()):
result.append(chr(219 - ord(S[i])))
else:
result.append(S[i])
return ''.join(result)
S = "abcDe"
print(cipher(S))
print(cipher(cipher(S)))
Konvertieren Sie Zeichen mit "ord ()" in ganzzahlige Werte des Unicode-Codepunkts. Die Umkehrfunktion ist chr ()
.
Nachtrag
# coding: utf-8
def cipher(S):
return ''.join(chr(219 - ord(c)) if c.islower() else c for c in S)
S = "abcDe"
print(cipher(S))
print(cipher(cipher(S)))
Sie können den ternären Operator und die Einschlussnotation für Dinge wie "Anhängen" durch "für" ersetzen, während Sie bedingt in die initialisierte Liste verzweigen. Wenn Sie wissen, dass es so etwas ist, können Sie es anscheinend lesen und schreiben.
# coding: utf-8
import numpy.random as rd
def gen_typo(S):
if len(S) <= 4:
return S
else:
idx = [0]
idx.extend(rd.choice(range(1, len(S)-1), len(S)-2, replace=False))
idx.append(len(S)-1)
result = []
for i in range(len(S)):
result.append(S[idx[i]])
return ''.join(result)
s = "I couldn't believe that I could actually understand what I was reading : the phenomenal power of the human mind ."
s = s.split()
print(' '.join([gen_typo(i) for i in s]))
Es gibt verschiedene Stichprobenverfahren, aber Sie können numpy.random.choice
verwenden, um zwischen Wiederherstellungsextraktion und Nicht-Wiederherstellungsextraktion zu wählen.
Nachtrag
# coding: utf-8
import random
def gen_typo(S):
return ' '.join(
s
#Gibt Wörter mit einer Länge von weniger als 4 zurück
if len(s) <= 4
#Mische Wörter 5 oder länger und lasse den ersten und zweiten Buchstaben übrig
else s[0] + ''.join(random.sample(s[1:-1], len(s)-2)) + s[-1]
for s in S.split()
)
S = "I couldn't believe that I could actually understand what I was reading : the phenomenal power of the human mind ."
print(gen_typo(S))
Dies wird auch mit der Einschlussnotation und dem ternären Operator umgeschrieben.
Außerdem wird "random.sample (Population, k)" zufällig wiederhergestellt und "k" -Elemente aus "Population" (Sequenz oder Menge) extrahiert.
Recommended Posts