Program to replace each string with an integer value in a given list of strings
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 |
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 |
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 Nov 20 '18 at 17:39
Brian Minton
2,07212232
2,07212232
asked Nov 20 '18 at 17:23
user_not_defineuser_not_define
186
186
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
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 |
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 |
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 |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
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
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
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 |
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 |
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 Nov 20 '18 at 17:30
iEldeniElden
692517
692517
add a comment |
add a comment |
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 |
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 |
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 Nov 20 '18 at 17:42
answered Nov 20 '18 at 17:36
Wes DoyleWes Doyle
1,0792719
1,0792719
add a comment |
add a comment |
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 |
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 |
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 Nov 20 '18 at 20:04
13aal13aal
8921136
8921136
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
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