Can anyone tell me how can I get the length of a string without using the len()
function or any string methods. Please anyone tell me as I\'m tapping my head ma
>>> sum(map(lambda x:1, "hello world"))
11
>>> sum(1 for x in "foobar")
6
>>> from itertools import count
>>> zip(count(1), "baz")[-1][0]
3
A "tongue twister"
>>> sum(not out not in out for out in "shake it all about")
18
some recursive solutions
>>> def get_string_length(s):
... return 1 + get_string_length(s[1:]) if s else 0
...
>>> get_string_length("hello world")
11
>>> def get_string_length_gen(s):
... yield 1 + next(get_string_length_gen(s[1:])) if s else 0
...
>>> next(get_string_length_gen("hello world"))
11
>>>
Here's a method which isn't using neither len
nor iteration:
>>> a = 'a' * 200000
>>> a.rindex(a[-1]) + 1
200000
To make it work for lists, which don't have rindex
, use:
>>> a = list(range(200000))
>>> a.index(a[-1], -1) + 1
200000
Why you need to avoid the len function is beyond me, but strings are iterables. You should be able to do this:
strlen = 0
for c in myString:
strlen += 1
You can get the length of the string with a for
loop.
For example, instead of:
string=input("Enter a string")
print(len(string))
Do this:
string=input("Enter a string")
a=0
for letter in string:
a=a+1
print(a)
It's a weird question so here's a weird answer!
try:
for i in itertools.count(): mystring[i]
except IndexError:
pass
Try doing this, its pretty simple and easy
def calculate_length(a):
x=0
for i in a:
x+=1
print(x)