Program to replace each string with an integer value in a given list of strings
up vote
0
down vote
favorite
Write a program to replace each string with an integer value in a given list of strings. The replacement integer value should be a sum of Ascci values of each character of the corresponding string.
list_rivers =["Ganges", "Godavari", "Brahmaputra", "Narmada","Yamuna", "Mahanadi", "Kaveri", "Tapti"]
I tried the following which is correct but I want to optimize the code.
list_rivers =["Ganges", "Godavari", "Brahmaputra", "Narmada", "Yamuna", "Mahanadi", "Kaveri", "Tapti"]
river = // empty list
for i in list_rivers:
num=0
for j in i:
num = num + ord(j)
river.append(num) // [597, 813, 1143, 692, 619, 787, 610, 514]
Can anyone help how to optimize the above code?
Thanks in advance.
python python-3.x python-2.7
add a comment |
up vote
0
down vote
favorite
Write a program to replace each string with an integer value in a given list of strings. The replacement integer value should be a sum of Ascci values of each character of the corresponding string.
list_rivers =["Ganges", "Godavari", "Brahmaputra", "Narmada","Yamuna", "Mahanadi", "Kaveri", "Tapti"]
I tried the following which is correct but I want to optimize the code.
list_rivers =["Ganges", "Godavari", "Brahmaputra", "Narmada", "Yamuna", "Mahanadi", "Kaveri", "Tapti"]
river = // empty list
for i in list_rivers:
num=0
for j in i:
num = num + ord(j)
river.append(num) // [597, 813, 1143, 692, 619, 787, 610, 514]
Can anyone help how to optimize the above code?
Thanks in advance.
python python-3.x python-2.7
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
Write a program to replace each string with an integer value in a given list of strings. The replacement integer value should be a sum of Ascci values of each character of the corresponding string.
list_rivers =["Ganges", "Godavari", "Brahmaputra", "Narmada","Yamuna", "Mahanadi", "Kaveri", "Tapti"]
I tried the following which is correct but I want to optimize the code.
list_rivers =["Ganges", "Godavari", "Brahmaputra", "Narmada", "Yamuna", "Mahanadi", "Kaveri", "Tapti"]
river = // empty list
for i in list_rivers:
num=0
for j in i:
num = num + ord(j)
river.append(num) // [597, 813, 1143, 692, 619, 787, 610, 514]
Can anyone help how to optimize the above code?
Thanks in advance.
python python-3.x python-2.7
Write a program to replace each string with an integer value in a given list of strings. The replacement integer value should be a sum of Ascci values of each character of the corresponding string.
list_rivers =["Ganges", "Godavari", "Brahmaputra", "Narmada","Yamuna", "Mahanadi", "Kaveri", "Tapti"]
I tried the following which is correct but I want to optimize the code.
list_rivers =["Ganges", "Godavari", "Brahmaputra", "Narmada", "Yamuna", "Mahanadi", "Kaveri", "Tapti"]
river = // empty list
for i in list_rivers:
num=0
for j in i:
num = num + ord(j)
river.append(num) // [597, 813, 1143, 692, 619, 787, 610, 514]
Can anyone help how to optimize the above code?
Thanks in advance.
python python-3.x python-2.7
python python-3.x python-2.7
edited 10 hours ago
Brian Minton
2,00712231
2,00712231
asked 10 hours ago
ravi_user123
132
132
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
up vote
1
down vote
You can use list compréhension :
[sum([ord(i) for i in word]) for word in list_rivers]
it's equivalent to do
tmp_1 =
for word in list_rivers:
tmp_2 =
for i in word:
tmp_2.append(ord(i))
tmp_1.append(sum(tmp_2))
add a comment |
up vote
0
down vote
As iElden mentions, you may use list comprehension here. Note that in this case, doing so does not necessarily optimize your code for efficiency.
Your method:
%%timeit
river =
for i in list_rivers:
num=0
for j in i:
num = num + ord(j)
river.append(num)
# 100000 loops, best of 3: 6.57 µs per loop
List comprehension:
%%timeit
result = [sum([ord(i) for i in word]) for word in list_rivers]
# 100000 loops, best of 3: 9.37 µs per loop
(Even slower) using map:
%%timeit
result = map(lambda x: sum([ord(letter) for letter in x]), list_rivers)
# 100000 loops, best of 3: 10.3 µs per loop
add a comment |
up vote
0
down vote
It says write a program to do it, so here's a program to do so. Example output: [597, 813, 1143, 692, 619, 787, 610, 514]
def string_to_int(string):
retval = 0
for c in string:
retval += ord(c)
return retval
def main(data):
retval =
for item in data:
retval.append(string_to_int(item))
return retval
if __name__ == "__main__":
list_rivers = ["Ganges", "Godavari", "Brahmaputra", "Narmada", "Yamuna", "Mahanadi", "Kaveri", "Tapti"]
results = main(list_rivers)
print results
add a comment |
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
You can use list compréhension :
[sum([ord(i) for i in word]) for word in list_rivers]
it's equivalent to do
tmp_1 =
for word in list_rivers:
tmp_2 =
for i in word:
tmp_2.append(ord(i))
tmp_1.append(sum(tmp_2))
add a comment |
up vote
1
down vote
You can use list compréhension :
[sum([ord(i) for i in word]) for word in list_rivers]
it's equivalent to do
tmp_1 =
for word in list_rivers:
tmp_2 =
for i in word:
tmp_2.append(ord(i))
tmp_1.append(sum(tmp_2))
add a comment |
up vote
1
down vote
up vote
1
down vote
You can use list compréhension :
[sum([ord(i) for i in word]) for word in list_rivers]
it's equivalent to do
tmp_1 =
for word in list_rivers:
tmp_2 =
for i in word:
tmp_2.append(ord(i))
tmp_1.append(sum(tmp_2))
You can use list compréhension :
[sum([ord(i) for i in word]) for word in list_rivers]
it's equivalent to do
tmp_1 =
for word in list_rivers:
tmp_2 =
for i in word:
tmp_2.append(ord(i))
tmp_1.append(sum(tmp_2))
answered 10 hours ago
iElden
39313
39313
add a comment |
add a comment |
up vote
0
down vote
As iElden mentions, you may use list comprehension here. Note that in this case, doing so does not necessarily optimize your code for efficiency.
Your method:
%%timeit
river =
for i in list_rivers:
num=0
for j in i:
num = num + ord(j)
river.append(num)
# 100000 loops, best of 3: 6.57 µs per loop
List comprehension:
%%timeit
result = [sum([ord(i) for i in word]) for word in list_rivers]
# 100000 loops, best of 3: 9.37 µs per loop
(Even slower) using map:
%%timeit
result = map(lambda x: sum([ord(letter) for letter in x]), list_rivers)
# 100000 loops, best of 3: 10.3 µs per loop
add a comment |
up vote
0
down vote
As iElden mentions, you may use list comprehension here. Note that in this case, doing so does not necessarily optimize your code for efficiency.
Your method:
%%timeit
river =
for i in list_rivers:
num=0
for j in i:
num = num + ord(j)
river.append(num)
# 100000 loops, best of 3: 6.57 µs per loop
List comprehension:
%%timeit
result = [sum([ord(i) for i in word]) for word in list_rivers]
# 100000 loops, best of 3: 9.37 µs per loop
(Even slower) using map:
%%timeit
result = map(lambda x: sum([ord(letter) for letter in x]), list_rivers)
# 100000 loops, best of 3: 10.3 µs per loop
add a comment |
up vote
0
down vote
up vote
0
down vote
As iElden mentions, you may use list comprehension here. Note that in this case, doing so does not necessarily optimize your code for efficiency.
Your method:
%%timeit
river =
for i in list_rivers:
num=0
for j in i:
num = num + ord(j)
river.append(num)
# 100000 loops, best of 3: 6.57 µs per loop
List comprehension:
%%timeit
result = [sum([ord(i) for i in word]) for word in list_rivers]
# 100000 loops, best of 3: 9.37 µs per loop
(Even slower) using map:
%%timeit
result = map(lambda x: sum([ord(letter) for letter in x]), list_rivers)
# 100000 loops, best of 3: 10.3 µs per loop
As iElden mentions, you may use list comprehension here. Note that in this case, doing so does not necessarily optimize your code for efficiency.
Your method:
%%timeit
river =
for i in list_rivers:
num=0
for j in i:
num = num + ord(j)
river.append(num)
# 100000 loops, best of 3: 6.57 µs per loop
List comprehension:
%%timeit
result = [sum([ord(i) for i in word]) for word in list_rivers]
# 100000 loops, best of 3: 9.37 µs per loop
(Even slower) using map:
%%timeit
result = map(lambda x: sum([ord(letter) for letter in x]), list_rivers)
# 100000 loops, best of 3: 10.3 µs per loop
edited 10 hours ago
answered 10 hours ago
Wes Doyle
5951519
5951519
add a comment |
add a comment |
up vote
0
down vote
It says write a program to do it, so here's a program to do so. Example output: [597, 813, 1143, 692, 619, 787, 610, 514]
def string_to_int(string):
retval = 0
for c in string:
retval += ord(c)
return retval
def main(data):
retval =
for item in data:
retval.append(string_to_int(item))
return retval
if __name__ == "__main__":
list_rivers = ["Ganges", "Godavari", "Brahmaputra", "Narmada", "Yamuna", "Mahanadi", "Kaveri", "Tapti"]
results = main(list_rivers)
print results
add a comment |
up vote
0
down vote
It says write a program to do it, so here's a program to do so. Example output: [597, 813, 1143, 692, 619, 787, 610, 514]
def string_to_int(string):
retval = 0
for c in string:
retval += ord(c)
return retval
def main(data):
retval =
for item in data:
retval.append(string_to_int(item))
return retval
if __name__ == "__main__":
list_rivers = ["Ganges", "Godavari", "Brahmaputra", "Narmada", "Yamuna", "Mahanadi", "Kaveri", "Tapti"]
results = main(list_rivers)
print results
add a comment |
up vote
0
down vote
up vote
0
down vote
It says write a program to do it, so here's a program to do so. Example output: [597, 813, 1143, 692, 619, 787, 610, 514]
def string_to_int(string):
retval = 0
for c in string:
retval += ord(c)
return retval
def main(data):
retval =
for item in data:
retval.append(string_to_int(item))
return retval
if __name__ == "__main__":
list_rivers = ["Ganges", "Godavari", "Brahmaputra", "Narmada", "Yamuna", "Mahanadi", "Kaveri", "Tapti"]
results = main(list_rivers)
print results
It says write a program to do it, so here's a program to do so. Example output: [597, 813, 1143, 692, 619, 787, 610, 514]
def string_to_int(string):
retval = 0
for c in string:
retval += ord(c)
return retval
def main(data):
retval =
for item in data:
retval.append(string_to_int(item))
return retval
if __name__ == "__main__":
list_rivers = ["Ganges", "Godavari", "Brahmaputra", "Narmada", "Yamuna", "Mahanadi", "Kaveri", "Tapti"]
results = main(list_rivers)
print results
answered 8 hours ago
13aal
8661133
8661133
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53398318%2fprogram-to-replace-each-string-with-an-integer-value-in-a-given-list-of-strings%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown