There is no "key-value pair" as a general thing in Python. Why are you using a list instead of a dictionary? A dictionary contains key-value pairs, but there's no builtin notion of a key-value pair that's not in a dictionary.
Another approach we can take to add a key-value pair in the list is to setNames() function and inside it, we use as. list(). Basically what we will have here is a syntax like given below, which will create a list and assign all the keys with their respective values.
R lists can be thought of as hashes- vectors of objects that can be accessed by name. Using this approach you can add a new entry to the list like so:
key <- "width"
value <- 32
mylist <- list()
mylist[[ key ]] <- value
Here we use the string stored in the variable key to access a position in the list much like using the value stored in a loop variable i to access a vector through:
vector[ i ]
The result is:
myList
$width
[1] 32
The setNames()
built-in function makes it easy to create a hash from given key and value lists. (Thanks to Nick K for the better suggestion.)
Usage: hh <- setNames(as.list(values), keys)
Example:
players <- c("bob", "tom", "tim", "tony", "tiny", "hubert", "herbert")
rankings <- c(0.2027, 0.2187, 0.0378, 0.3334, 0.0161, 0.0555, 0.1357)
league <- setNames(as.list(rankings), players)
Then accessing the values through the keys is easy:
league$bob [1] 0.2027 league$hubert [1] 0.0555
List elements in R can be named. So in your case just do
> mylist = list()
> mylist$width = value
When R encounters this code
> l$somename=something
where l is a list. It appends to a list an element something, and names it with name somename. It is then can be accessed by using
> l[["somename"]]
or
> l$somename
The name can be changed with command names:
> names(l)[names(l)=="somename"] <- "othername"
Or if you now the position of the element in the list by:
> names(l)[1] <- "someothername"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With